gpt4 book ai didi

javascript - 在 JavaScript 上将属性从字符串更新为对象而不发生突变

转载 作者:行者123 更新时间:2023-12-01 01:13:39 27 4
gpt4 key购买 nike

当迭代一个对象并更新它时,我觉得我做得不对。这是我为此构建的方法,我对 record[header] = {label: record[header]};

有疑问

有人有更好的解决方案来避免突变记录数组吗?

setAfterRecords(preview: any): void {
const { columns: headers } = preview;
const { rows: records } = preview;

records.map((record, i) => {
headers.forEach(header => {
record[header] = {
label: record[header],
};
});

return record;
});

this.after = { headers, records };
}

谢谢。

最佳答案

下面应该可以做到这一点。它使用新的对象扩展运算符(... on {})。它类似于 Object.assign(),但语法更简洁。

setAfterRecords(preview: any): void {
const { columns: headers, rows: records } = preview;

// Build a new array of records.
const newRecords = records.map(record => {

// Build a new record object, adding in each header.
return headers.reduce((c, header) => {

// This operation shallow-copies record from the initial value or
// previous operation, adding in the header.
return { ...c, [header]: { label: record[header] } }
}, record)
})

this.after = { headers, records: newRecords };
}

关于javascript - 在 JavaScript 上将属性从字符串更新为对象而不发生突变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54949638/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com