从数组的第一个元素创建一个数组

时间:2018-01-23 10:00:53

标签: arrays node.js typescript

我们说我们有这个数组

[{name:string,address:string,tel:string},{name:string, address:string, tel:string}]
  • 数组中的每个对象都属于同一类型
  • 我想从每个对象中提取相同的属性

如何从第一个数组中包含的对象创建此数组?

[name:string, name:string]

我还是javascript /打字稿的新手我试图找到一种有效的方法来做这件事

任何想法?

2 个答案:

答案 0 :(得分:2)

对象中的元素具有任何顺序。但是每个价值的关键都有。因此,您可以访问第一个key in the object,并使用它来获取所需的值。

像这样:

let arrOfObjects = [
     {a: 1, b: 2, c: 3},
     {a: 4, b: 5, c: 6}
];
let newArr = arrOfObjects.map( item => item[Object.keys(item)[0]]); // [1,4]

或者,在您的情况下,如果您只想要每个人的名字(无论对象中的键的顺序如何),更好的方法是这样做:

let personArr = [
    {name: "Dan",  address: "here",  phon: "123"},
    {name: "Dany", address: "there", phon: "456"}
];

 let namesArr = arrOfObjects.map( item => item.name);  //  ["Dan", "Dany"]

答案 1 :(得分:0)

let m = [];
let a = [{'a1' : 1 ,'a2': 2, 'a3': 3},{'b1': A, 'b2': B, 'b3': C}];
let arrLength = a.length;
let objLength = 3;

for(let i = 0; i < objLength; i++){
    for(let j = 0; j < arrLength; j++){
        m.push(a[j][Object.keys(a[j])[i]]);
    }
}

输出

  

[1,“A”,2,“B”,3,“C”]