问题描述
我有这种格式的数据
[["hi,hello,"bye"],["hi,"bye"]]
并且我想将 4 个索引连接到新数组,以便新数组成为
[["hi,"bye","hi,"bye"]]
我正在尝试使用此代码但不知道该怎么做
const table = document.querySelectorAll('table[class=ProductInventory]')[1];
const data = [];
const finalData =[]
for (var i = 1; i < table.rows.length; i++) {
var tableRow = table.rows[i];
var rowData = [];
for (var j = 0; j < tableRow.cells.length; j++) {
rowData.push(tableRow.cells[j].innerText);
}
data.push(rowData);
}
let counter = 1
for (var a = 0; a <= data.length / 4; a++) {
const obj = []
counter++
if(counter == 4){
obj.concat(data[a-3],data[a - 2],data[a - 1]);
counter = 0
}
finalData.push(obj)
}
解决方法
您可以将 Array.from
与 Array#slice
一起使用。
const arr = [["hi","hello","bye"],["hi",'hello',"bye"]];
const size = 4;
const res = Array.from({length: Math.ceil(arr.length / size)},(_,i)=>arr.slice(i * size,(i + 1) * size).flat());
console.log(res);
您可以使用 JavaScript Array reduce()
方法
const data = [["hi","bye"]];
const finalData = data.reduce((finalVal,currenctVal,currenctIndex) => {
let index = Math.floor(currenctIndex / 4);
if(!finalVal[index]) {
finalVal[index] = [];
}
finalVal[index] = finalVal[index].concat(currenctVal);
return finalVal;
},[]);