2 回答
TA贡献1798条经验 获得超7个赞
正如评论所指出的,我认为您对自己到底需要什么感到困惑——您所描述的只是一个多维数组,根本不是一个对象。只需通过谷歌搜索该术语,您就会在网上找到大量信息。
至于您的具体示例,以下是您如何使用几个 for 循环来做到这一点:
array1 = ["A", "B", "C", "D", "E", "F", "G"];
makeGrid(array1, 2);
makeGrid(array1, 3);
function makeGrid(array, step) {
const grid = [];
for (i = 0; i < array.length; i+= step) {
const tmp = [];
for (j = 0; j < step && array[i + j]; j++) {
tmp.push(array[i+j]);
}
grid.push(tmp);
}
console.log(grid);
}
TA贡献1890条经验 获得超9个赞
您可以对数组进行切片,直到没有更多值可用。使用具有所需长度的切片数组,您可以生成具有给定名称和编号的新对象。
function getGrouped(array, size, key) {
var result = [],
i = 0;
while (i < array.length) {
result.push(Object.assign(...array.slice(i, i += size).map((v, i) => ({ [key + i]: v}))));
}
return result;
}
console.log(getGrouped(["A", "B", "C", "D", "E", "F", "G"], 2, 'name'));
console.log(getGrouped(["A", "B", "C", "D", "E", "F", "G", "H", "I"], 3, 'name'));
.as-console-wrapper { max-height: 100% !important; top: 0; }
添加回答
举报