javascript从数组中的所有对象中提取某些属性
我有一个具有相同属性的对象数组。每个对象大约有一百个属性。我只想在一个新阵列中保留一小部分:javascript从数组中的所有对象中提取某些属性,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,我有一个具有相同属性的对象数组。每个对象大约有一百个属性。我只想在一个新阵列中保留一小部分: var dummyArray = [{ "att1": "something", "att2": "something", ..., "att100": "something"}, { "att1": "something", "att2": "something", ..., "att100": "something"}, ...]; 如何筛选/映射/减少。。。然后提取有趣的键 const newD
var dummyArray = [{ "att1": "something", "att2": "something", ..., "att100": "something"}, { "att1": "something", "att2": "something", ..., "att100": "something"}, ...];
如何筛选/映射/减少。。。然后提取有趣的键
const newDummArray = dummyArray.map(function(item) {
delete item.att1;
delete item.att3;
delete item.att15;
// ... (long list)
return item;
});
如何仅为每个对象保留att20
、att30
、att70
、att80
,并删除其余对象?用于获取属性,并使用以下方法生成新对象:
const dummyArray=[{“att20”:“att20”,“att30”:“att30”,“att70”:“att70”,“att80”:“att80”},{“att20”:“att20”,“att30”:“att30”,“att70”:“att70”,“att80”:“att80”}];
const result=dummyArray.map({att20,att30,att70,att80})=>({
20时,
零时三十分,
att70,
att80
}));
控制台日志(结果)代码>用于获取属性,并使用以下命令生成新对象:
const dummyArray=[{“att20”:“att20”,“att30”:“att30”,“att70”:“att70”,“att80”:“att80”},{“att20”:“att20”,“att30”:“att30”,“att70”:“att70”,“att80”:“att80”}];
const result=dummyArray.map({att20,att30,att70,att80})=>({
20时,
零时三十分,
att70,
att80
}));
控制台日志(结果)代码>map创建一个新数组,因此不需要删除任何内容,而是创建一个有趣的键数组并返回它
var dummyArray=[{
“att1”:“某物”,
“att2”:“某物”,
“att20”:“某物”,
“att100”:“某物”
}, {
“att1”:“某物”,
“att2”:“某物”,
“att20”:“某物”,
“att100”:“某物”
}];
设x=dummyArray.map((项)=>{
返回{
属性20:item.att20
}
})
log(x)
map创建一个新数组,因此不需要删除任何内容,而是创建一个有趣的键数组并返回它
var dummyArray=[{
“att1”:“某物”,
“att2”:“某物”,
“att20”:“某物”,
“att100”:“某物”
}, {
“att1”:“某物”,
“att2”:“某物”,
“att20”:“某物”,
“att100”:“某物”
}];
设x=dummyArray.map((项)=>{
返回{
属性20:item.att20
}
})
console.log(x)
将要保留的道具存储在一个数组中,然后为每个对象将需要的道具转移到一个新对象
var dummyArray=[{“att1”:“something”,“att2”:“something”,“att100”:“something”},{“att1”:“something”,“att2”:“something”,“att100”:“something”}];
var Propstokep=[“att1”,“att100”];
var result=dummyArray.map(项=>{
常量obj={};
用于(前拱的常量支柱){
obj[prop]=项目[prop];
}
返回obj;
})
console.log(result)
将要保留的道具存储在一个数组中,然后为每个对象将需要的道具转移到一个新对象
var dummyArray=[{“att1”:“something”,“att2”:“something”,“att100”:“something”},{“att1”:“something”,“att2”:“something”,“att100”:“something”}];
var Propstokep=[“att1”,“att100”];
var result=dummyArray.map(项=>{
常量obj={};
用于(前拱的常量支柱){
obj[prop]=项目[prop];
}
返回obj;
})
log(result)
这里有一个函数,它接受一个对象,并只提取您想要的属性。它作为第二个参数通过数组
优点:更直接、更干净。特别是当您只需要从一个对象中提取时
如果你有一个对象列表。映射列表并在每次迭代中提取
function objectExtract(obj, properties) {
return properties.reduce((result, prop) => {
if (obj.hasOwnProperty(prop)) {
result[prop] = obj[prop];
}
return result;
}, {});
}
在这里阅读有关减少的内容
使用:
(redux的真实示例)
(以问题为例)
这里有一个函数,它接受一个对象,并且只提取您想要的属性。它作为第二个参数通过数组
优点:更直接、更干净。特别是当您只需要从一个对象中提取时
如果你有一个对象列表。映射列表并在每次迭代中提取
function objectExtract(obj, properties) {
return properties.reduce((result, prop) => {
if (obj.hasOwnProperty(prop)) {
result[prop] = obj[prop];
}
return result;
}, {});
}
在这里阅读有关减少的内容
使用:
(redux的真实示例)
(以问题为例)
对于通用函数来说,这是很好的,但当密钥列表是先验的时,效率会很低。@Alnitak是的,但是在ori-dori和brk解决方案中存在代码重复(密钥名称重复)。我认为代码复制(以及任何过早的优化混乱)比稍微慢一点但更灵活的代码更糟糕。这对于通用函数来说是不错的,但当密钥列表是先验的时效率会很低。@Alnitak是的,但也就是说,在ori-dori和brk解决方案中存在代码复制(密钥名称重复)。我认为代码复制(以及任何过早的优化混乱)比稍微慢一点但更灵活的代码更糟糕。不知何故,其他答案中的扩展运算符…
给我带来了麻烦。真正的函数objectExtract
非常适合我。不知何故,其他答案中的spread操作符…
给我带来了麻烦。真正的函数objectExtract
非常适合我。
var dataSourceArray = [{
"att1": "something",
"att2": "something",
"att20": "something",
"att100": "something"
}, {
"att1": "something",
"att2": "something",
"att20": "something",
"att100": "something"
}];
let x = dataSourceArray.map((item) => {
return objectExtrac(item, ['att100', 'att2']);
});