그래서, 당신의 배열을 가정하면 당신은 같이하고, 같이 주문한는 "1-A1", "1 군, 수, 인덱스 1"을 의미 ("1-a4"는 "그룹 1, 숫자,"인덱스 4 "및"2-b1 "은"그룹 2, 숫자, 인덱스 1 "등을 의미 함), 모든 파트가 둘 이상일 수 있다고 가정합니다 수 (같은 "11-8812"일명 "그룹 11, 88 등의 숫자 12와 같은 인덱스가"); 당신이 가진 수있는 일 같은 :
var array = ["1-81","1-102","1-93","1-24","2-881","2-122","2-13","2-984","3-2121","3-12","3-93","4-41","4-22"]
var max = {};
var group = "", count = 0;
for (var i = 0; i < array.length; i++) {
var parts = array[i].split("-");
if (group !== parts[0]) {
group = parts[0];
count = 0;
}
count++;
var number = +parts[1].replace(new RegExp(count + "$"), "");
max[group] = Math.max(max[group] || 0, number)
}
console.log(max)
당신이 할 수있는 루게릭 병 o max
에 객체 대신 배열을 사용하십시오. 마지막 수인 이 항상 인 경우 전체 절차가 단순화 될 수 있습니다.
'1-61,1-62,1-63,1-64,2-31,2-32,2-33,2-34,3-71,3-72,3-73,4- 71,4-72 '이 표본에서 어떤 결과를 원하니? –
@RoyiNamir 그가 a = 6, b = 3, c = 7, d = 7을 원한다고 생각합니다. –
결과는 a = 64, b = 34, c = 73 및 d = 72이어야하며 문자열이 아닙니다. , 배열에 문자열 요소가 포함되어 있습니다 – Omran