gpt4 book ai didi

javascript - 从对象中过滤属性的更简洁的方法

转载 作者:行者123 更新时间:2023-11-28 16:46:58 32 4
gpt4 key购买 nike

我创建了一个函数来删除我告诉他的属性

function trimProperties(data, properties) {
return data.map(o => {
Object.keys(o).forEach(k => {
if (properties.includes(k)) {
delete o[k];
}
});
return o;
});
}

我的用例通常是这样的

let array = [
{
a: 'A',
b: 'B',
c: 'C'
},
{
a: 'A2',
b: 'B2',
c: 'C2'
}
]
// Remove every property 'b' or 'c' from the objects inside the array
trimProperties(array, ['b','c']);

我的问题很简单,如何使这个函数更快,因为我的数组有时会变得很大,因为它是数据库访问的结果集

最佳答案

删除会导致索引一直重新计算,创建新数组会更快

let array = [
{
a: 'A',
b: 'B',
c: 'C'
},
{
a: 'A2',
b: 'B2',
c: 'C2'
}
]

function trimProperties(data, properties) {
let i = 0;
const result = []
while (i < data.length) {
var o = {};
Object.keys(data[i]).forEach(k => {
if (!properties.includes(k)) {
o[k] = data[i][k];
}
})
i++;
if (Object.keys(o).length) {
result.push(o);
}
}

return result;

}

// Remove every property 'b' or 'c' from the objects inside the array
console.log(trimProperties(array, ['b','c']));

关于javascript - 从对象中过滤属性的更简洁的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60432187/

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