说我下面有一个数组,我想检索索引对象内的键,这样我就可以得到像这样的数组["prop1", "prop2", "prop3", "prop3"]
const testArray = [
{
0: {
prop1: "sdsd",
prop2: "ssdsd"
}
},
{
1: {
prop3: "sdsd",
prop4: "sddd"
}
}
]
答案 0 :(得分:1)
使用reduce和concat:
const testArray = [
{
0: {
prop1: "sdsd",
prop2: "ssdsd"
}
},
{
1: {
prop3: "sdsd",
prop4: "sddd"
}
}
]
const keys = testArray.reduce((arr, curr, index) =>
arr.concat(Object.keys(curr[index])),[])
console.log(keys)
// ["prop1", "prop2", "prop3", "prop4"]
答案 1 :(得分:0)
您可以使用值的键在数组上进行映射
const testArray = [
{
0: {
prop1: "sdsd",
prop2: "ssdsd"
}
},
{
1: {
prop3: "sdsd",
prop4: "sddd"
}
}
]
const keys = testArray
.map(e => Object.keys(...Object.values(e)))
.flat();
console.log(keys);
请注意,flat()目前尚处于试验阶段,因此您可能需要使用reduce或大约平面来简化数组...
答案 2 :(得分:0)
@bambam给出了带有“ map”的解决方案,这一点更加清楚。 您也可以使用“减少”,如下所示。
testArray.reduce((arr, d) =>
(arr.push(
Object.entries(d).map(([, l]) => Object.keys(l))
)
, arr)
,[]).flat(2)
答案 3 :(得分:0)
使用forEach的一种解决方案
const testArray = [
{
0: {
prop1: "sdsd",
prop2: "ssdsd"
}
},
{
1: {
prop3: "sdsd",
prop4: "sddd"
}
}
];
var arr = [];
testArray.forEach((data, index) => {
let tempArr = Object.keys(data[index]);
arr = arr.concat(tempArr);
})
console.log(arr);
答案 4 :(得分:0)
var map = [null, 'dG', 'h2', 'gF', 'pz', 'V0'];
function getText (obj, key) {
// if (obj[key]) {
// return obj[key];
// } else {
// return null;
// }
return obj[key] ? obj[key] : null;
}
console.log(getText(map, 1));
console.log(getText(map, 5));
console.log(getText(map, 100));