我有这些数据。如您所见,有4个代码,每个代码都有不同的值。
以下是数据:
{
"code": {
"1": 20,
"2": 1,
"3": 2,
"10": 1
}
}
var totals = []
我需要做的是将它们放入总数数组中,以便最终结果如下:
[20,1,2,1]
我该怎么做?
答案 0 :(得分:2)
自ES2017起,您可以使用Object.values
:
var obj = {
"code": {
"1": 20,
"2": 1,
"3": 2,
"10": 1
}
};
Object.values(obj.code);
如果您使用的是旧版本,则可以使用Anthony答案中提到的for
循环,也可以使用lodash或不受欢迎的版本。
答案 1 :(得分:1)
使用Array#map
和Object.keys
方法。
var data = {
"code": {
"1": 20,
"2": 1,
"3": 2,
"10": 1
}
};
var totals = Object.keys(data.code).map(function(k) {
return data.code[k];
})
console.log(totals);

答案 2 :(得分:0)
使用Object.keys()
或Object.values()
var obj = {
"code": {
"1": 20,
"2": 1,
"3": 2,
"10": 1
}
};
var totals = [];
Object.keys(obj.code).forEach(function(key){
totals.push(obj.code[key]);
});
console.log(JSON.stringify(totals));
console.log(JSON.stringify(Object.values(obj.code)));

答案 3 :(得分:0)
为了保持稳定的结果,您应该提前对键进行排序。
var data = { code: { 1: 20, 2: 1, 3: 2, 10: 1 } },
result = Object.keys(data.code).sort(function (a, b) {
return a - b;
}).map(function (k) {
return data.code[k];
});
console.log(result);
答案 4 :(得分:0)
var obj = {
"code": {
"1": 20,
"2": 1,
"3": 2,
"10": 1
}
};
var arr = Object.keys(obj.code).map(function (k) { return obj.code[k]; });
答案 5 :(得分:-1)
您可以循环键并将值添加到数组中:
var total = [];
for(var key in a.code) {
total.push(a.code[key]);
}
答案 6 :(得分:-1)
像这样。使用for in
循环来推送obj.code的每个元素。
var obj = {
"code": {
"1": 20,
"2": 1,
"3": 2,
"10": 1
}
};
var code = obj.code;
var totals = [];
for(x in code){
totals.push(code[x]);
}
console.log(totals);