这个周末我一直在寻找一种方法来重新组合数组中的项目,但没有成功。我一直在研究 reduce() 方法,以重新组合数组中的连续数字,尽管它需要映射每个项目的索引,这很快就会变得难以阅读。
我无法找到正确的术语来在 Stack Overflow 上查找类似问题。如果这是一个重复的问题,我们深表歉意。
// Initial array:
foo = ["a", "b", "C", "D", "e", "f", "G", "H", "I", "j", "k", "l", "M", "n" ]
// Desired array:
bar = ["a", "b", ["C", "D"], "e", "f", ["G", "H", "I"], "j", "k", "l", ["M"], "n" ]
这个简单的插图是不言自明的,代表了我试图解决的问题。
最佳答案
function regroupArray(array) {
let temp = array.map(el => (el >= "A" && el <= "Z" ? [el] : el));
temp.forEach((el, i, arr) => {
if (Array.isArray(el)) {
while (Array.isArray(arr[i + 1])) {
arr[i] = arr[i].concat(arr[i + 1]);
arr.splice(i + 1, 1);
}
}
});
return temp;
}
关于javascript - 重新组合数组中的特定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60589487/