我有這個數據。正如你可以看到有4個代碼,每個代碼有不同的值。Javascript獲得不同的值到一個數組
下面是數據:
{
"code": {
"1": 20,
"2": 1,
"3": 2,
"10": 1
}
}
var totals = []
我需要做的就是把這些入總數排列,因此最後的結果是這樣的:
[20,1,2, 1]
我該怎麼做?
我有這個數據。正如你可以看到有4個代碼,每個代碼有不同的值。Javascript獲得不同的值到一個數組
下面是數據:
{
"code": {
"1": 20,
"2": 1,
"3": 2,
"10": 1
}
}
var totals = []
我需要做的就是把這些入總數排列,因此最後的結果是這樣的:
[20,1,2, 1]
我該怎麼做?
喜歡this.push使用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);
可以任何人都解釋爲什麼downvoted?這是壞習慣downvote工作的答案。 –
由於ES2017,您可以使用Object.values
:
var obj = {
"code": {
"1": 20,
"2": 1,
"3": 2,
"10": 1
}
};
Object.values(obj.code);
如果您使用的是舊版本,你可以使用一個for
環路在安東尼的答覆中提到,或者使用lodash或undesrcore。
你可以通過鑰匙環和值添加到一個數組:
var total = [];
for(var key in a.code) {
total.push(a.code[key]);
}
我建議增加'如果(a.code.hasOwnProperty(鍵)'推前值,以避免增加不必要的值。 – GilZ
使用Object.keys()
OR 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)));
使用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);
爲了保持穩定的結果,你應該事先鍵排序。
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);
var obj = {
"code": {
"1": 20,
"2": 1,
"3": 2,
"10": 1
}
};
var arr = Object.keys(obj.code).map(function (k) { return obj.code[k]; });
你也可以遍歷你的對象 – AshBringer