Har*_*rma 1 javascript data-structures
假设我有一个对象数组,这里我假设对象具有三个属性,但可能更多,我想用属性名称提取其中一些:
objArr = [{
name : "name",
description : "description",
date : "date"
},{
name : "name",
description : "description",
date : "date"
},{
name : "name",
description : "description",
date : "date"
}]
Run Code Online (Sandbox Code Playgroud)
name比如说,我只想从上述 中提取 的值objArr。我可以使用以下方法来做到这一点:
(function(objArray){
objArray.forEach(function(arrObjItem) {
for(let name in arrObjItem) {
if(arrObjItem.hasOwnProperty(name)) {
console.log(objArrItem.name)
}
}
})
})(objArr)
Run Code Online (Sandbox Code Playgroud)
但我真正想要的是提取两个以上属性的值name和description/或值,如果问题具有不同的数据结构,每个对象有更多属性。最后,我想创建这些提取的属性的映射。(或具有提取的属性、值的新对象数组)(或具有提取的属性、值对的元组)。
您可以映射对象所需的键,并通过映射数组生成新对象。
function getSubset(array, keys) {
return array.map(o => Object.assign(...keys.map(k => ({ [k]: o[k] }))));
}
var objArr = [{ name: "name", description: "description", date: "date" }, { name: "name", description: "description", date: "date" }, { name: "name", description: "description", date: "date" }];
console.log(getSubset(objArr, ['name', 'description']));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |