我们说我们有这个数组
[{name:string,address:string,tel:string},{name:string, address:string, tel:string}]
如何从第一个数组中包含的对象创建此数组?
[name:string, name:string]
我还是javascript /打字稿的新手我试图找到一种有效的方法来做这件事
任何想法?
答案 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”]