转换多个对象以JavaScript数组

问题描述 投票:-3回答:4

我有一个对象说

SiteData(2)
[
0: { site_name: "ABC", totalPercent: 15}
1: { site_name: "XYZ", totalPercent: 31}
]

我需要将其转换成应存储在一个变量作为单一阵列

var SiteData= [[ABC,15],[XYZ,31]]

我曾尝试与Object.values(SiteData);

但我没有得到期望的输出

javascript
4个回答
1
投票

您需要为外部对象的内部对象申请两次Object.values,一次,一次:

const SiteData = {
  0: { site_name: "ABC", totalPercent: 15},
  1: { site_name: "XYZ", totalPercent: 31}
};

const result = Object.values(SiteData).map(Object.values);

console.log(result);

0
投票

你的对象是错误的。并使用mapObject.values

var a=
[
{0: { site_name: "ABC", totalPercent: 15}},
{1: { site_name: "XYZ", totalPercent: 31}}
];
console.log(a.map(e=>Object.values(e).map(x=>Object.values(x).map(t=>t))))

0
投票

对于正确的顺序,这是依赖于插入顺序,或者如果你有更多的性能比想要的,你可以使用所需的按键阵列来分隔值获得的值。

var data = [{ site_name: "ABC", totalPercent: 15 }, { site_name: "XYZ", totalPercent: 31 }],
    keys = ['site_name', 'totalPercent'],
    result = data.map(o => keys.map(k => o[k]));

console.log(result);

-1
投票

尝试这个

let data = [
    { site_name: "ABC", totalPercent: 15},
    { site_name: "XYZ", totalPercent: 31}
];
let tempData= [];

for(let i = 0; i<data.length; i++){
tempData.push([data[i].site_name, data[i].totalPercent])
}

console.log(tempData)
© www.soinside.com 2019 - 2024. All rights reserved.