说我有这个数组:
Dogs = [
{Name: 'Sparky', OwnerID: 1},
{Name: 'Pooch', OwnerID: 2},
{Name: 'Sneak', OwnerID: 1}
]
对我而言,最快的方法是什么?
dogNames = Dogs.map(element => element.Name);
我只是想知道是否有这样的东西:
dogNames = Dogs[...Name];
答案 0 :(得分:1)
您可以将通配符封闭在地图上,该映射仅是单个属性的结果。
const only = k => o => o[k];
var dogs = [{ Name: 'Sparky', OwnerID: 1 }, { Name: 'Pooch', OwnerID: 2 }, { Name: 'Sneak', OwnerID: 1 }],
dogNames = dogs.map(only('Name'));
console.log(dogNames);
答案 1 :(得分:0)
这取决于您所说的“最快”。你是说执行时间?打字最快?最容易理解?
当您所说的是“最快输入”和“最容易理解”时,我想说的是array.map(x => x.prop)
之类的东西可能是最快的。除了删除变量和属性名称之外,您可能会找到一种更短的键入方式,但是我想不到。
就执行时间而言,大多数人认为使用循环是最快的方法:
let names = [];
for (let i = 0; i < dogs.length; i += 1) {
names[i] = dogs[i].Name;
}
我个人而言,我尽可能避免循环,并坚持使用map
,filter
,reduce
–老实说,主要是因为大多数项目 my 的执行时间比我的 script 的执行时间更昂贵。
无论如何,由您决定。