我正在嘗試將我的 _rows 值放入我的物件值中,但是我嘗試運行一個回圈但我無法獲取資料,我使用的腳本是
let _columns = ["Name", "age", "phone"]
let _rows = [[{ value: 'john' }, { value: '22' }, { value: '999' }], [{ value: 'Bob' }, { value: '21' }, { value: '222' }]]
let res = {}
for (let i = 0; i < _rows.length; i ) {
for (let a = 0; a < _columns.length; a ) {
console.log(_rows[i][a].value)
}
res = _columns.reduce((acc,curr)=> (acc[curr]="data",acc),{});
console.log(res)
res = {}
}
在我的 console.log 上,它列印

目標輸出應該是
{Name: 'john', age: '22', phone: '999'}
{Name: 'bob', age: '21', phone: '222'}
uj5u.com熱心網友回復:
您可以使用
array.map 從 _rows 構建另一個陣列
foreach 值,您必須檢查列是否存在
if (_columns[index]) {如果是,則在新物件中添加列名下的值
res[_columns[index]] = property.value;
let _columns = ["Name", "age", "phone"]
let _rows = [[{ value: 'john' }, { value: '22' }, { value: '999' }], [{ value: 'Bob' }, { value: '21' }, { value: '222' }]];
let result = _rows.map(one => {
let res = {};
one.forEach((property, index) => {
if (_columns[index]) {
res[_columns[index]] = property.value;
}
});
return res;
});
console.log(result);
uj5u.com熱心網友回復:
如果您想堅持使用reduce,只需進行這個小改動即可獲得實際值,而不是硬編碼字串“data”。您需要使用currentIndexreduce 回呼的可選引數,然后使用索引來訪問值的行專案。
let _columns = ["Name", "age", "phone"]
let _rows = [[{ value: 'john' }, { value: '22' }, { value: '999' }], [{ value: 'Bob' }, { value: '21' }, { value: '222' }]]
let res = {}
for (let i = 0; i < _rows.length; i ) {
for (let a = 0; a < _columns.length; a ) {
console.log(_rows[i][a].value)
}
res = _columns.reduce((acc,curr,index)=> (acc[curr]=_rows[i][index].value,acc),{});
console.log(res)
res = {}
}
但是,在您的情況下處理行和列時,由于陣列索引很重要,因此有時使用老式的嵌套 for 回圈可能會更加清晰。我的經驗是,當您無論如何都需要陣列索引時,盡量不要花哨并使用常規的 for 回圈。
let _columns = ["Name", "age", "phone"]
let _rows = [[{ value: 'john' }, { value: '22' }, { value: '999' }], [{ value: 'Bob' }, { value: '21' }, { value: '222' }]]
for(let i = 0; i < _rows.length; i )
{
let res = {};
for(let j = 0; j < _columns.length; j )
{
res[_columns[j]] = _rows[i][j].value
}
console.log(res);
}
uj5u.com熱心網友回復:
雙打Arry.map就行了
let _columns = ["Name", "age", "phone"]
let _rows = [
[{ value: 'john' }, { value: '22' }, { value: '999' }],
[{ value: 'Bob' }, { value: '21' }, { value: '222' }]
];
const output = _rows.map((row) => row.map((item, index) => ({ [_columns[index]]: item.value })));
console.log(output)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/453250.html
標籤:javascript
