js,如何按照下标号去分割一个不等长的数组,下有详细
要在 JavaScript 中根据下标分割一个不等长的数组,可以使用以下步骤:
方法一:使用 slice
方法
JavaScript 的 Array.prototype.slice()
方法可以用来分割数组。你可以通过指定开始和结束的下标来获取数组的子数组。以下是如何根据多个下标分割数组的例子:
javascriptfunction splitArrayByIndices(arr, indices) {
let result = [];
let start = 0;
for (let i = 0; i < indices.length; i++) {
let end = indices[i];
result.push(arr.slice(start, end));
start = end;
}
// Handle the remaining elements
if (start < arr.length) {
result.push(arr.slice(start));
}
return result;
}
// 示例
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
let indices = [3, 5, 8]; // 表示分割在下标3, 5, 和 8处
let splitted = splitArrayByIndices(arr, indices);
console.log(splitted); // [[1, 2, 3], [4, 5], [6, 7, 8], [9]]
方法二:使用 reduce
方法
你还可以使用 Array.prototype.reduce()
方法来分割数组。以下是一个例子:
javascriptfunction splitArrayByIndices(arr, indices) {
return indices.reduce((result, index) => {
result.push(arr.slice(result.lastIndex, index));
result.lastIndex = index;
return result;
}, { lastIndex: 0, result: [] }).result.concat(arr.slice(indices[indices.length - 1]));
}
// 示例
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
let indices = [3, 5, 8]; // 表示分割在下标3, 5, 和 8处
let splitted = splitArrayByIndices(arr, indices);
console.log(splitted); // [[1, 2, 3], [4, 5], [6, 7, 8], [9]]
总结
slice
方法:使用slice
方法可以在指定的下标之间创建新的数组片段。reduce
方法:使用reduce
方法可以在遍历索引时动态生成分割后的数组。
关键字
JavaScript, 数组分割, slice
方法, reduce
方法, 下标, 子数组