我需要从许多对象创建一个列表(键)(在本示例中,我将使用3):
{Year: "2016", A: "2.015", B: "1.959"}
{Year: "2017", A: "1.200", C: "2.247"}
{Year: "2018", A: "1.301", C: "2.056", D: "1"}
要得到的结果是:Year,A,B,C,D
。我需要保留值Year
并合并其余值。我该怎么办?
编辑:
我已经做到了
json = [
{Year: "2016", A: "2.015", B: "1.959"},
{Year: "2017", A: "1.200", C: "2.247"},
{Year: "2018", A: "1.301", C: "2.056", D: "1"}
];
keys= Object.keys(json[0]); // console.log(keys) = Year,A,B
我正在从json的第一个对象中读取键,但是现在我需要将每个对象和它们的键混合在一起
答案 0 :(得分:2)
简单-使用reduce
和Object.keys
:
const data = [{
Year: "2016",
A: "2.015",
B: "1.959"
}, {
Year: "2017",
A: "1.200",
C: "2.247"
}, {
Year: "2018",
A: "1.301",
C: "2.056",
D: "1"
}];
const output = data.reduce((acc, val) => {
Object.keys(val).forEach(key => {
if (!acc.includes(key)) {
acc.push(key);
}
});
return acc;
}, []);
console.log(output);
答案 1 :(得分:1)
使用forEach
和Set
var a=[{Year: "2016", A: "2.015", B: "1.959"},
{Year: "2017", A: "1.200", C: "2.247"},
{Year: "2018", A: "1.301", C: "2.056", D: "1"}]
var arr=[];
a.forEach((e)=>{
arr=[...arr,...Object.keys(e)]
})
arr=[...new Set(arr)]
console.log(arr)
答案 2 :(得分:1)
var a=[{Year: "2016", A: "2.015", B: "1.959"}, {Year: "2017", A: "1.200", C: "2.247"}, {Year: "2018", A: "1.301", C: "2.056", D: "1"}];
console.log([
...new Set(a.map(e. => Object.keys(e)).flat())
].join(','));
答案 3 :(得分:0)
下面的代码将生成一个Set
唯一键。然后可以轻松地将其转换回数组或字符串。
const data = [
{Year: "2016", A: "2.015", B: "1.959"},
{Year: "2017", A: "1.200", C: "2.247"},
{Year: "2018", A: "1.301", C: "2.056", D: "1"}
];
const keys = new Set([].concat(...data.map(o => Object.keys(o))));
console.log([...keys]);
console.log([...keys].join(','));
注意: [].concat[...twoDimensionalArray]
技巧可以用对flatMap()
的调用来代替-尽管目前仍然缺少对浏览器的支持。 < / p>
答案 4 :(得分:0)
遍历每个对象,取出密钥并将其添加到print_dog
。
console.log('cat');