Javascript将不同的值放入数组中

时间:2017-01-24 15:38:38

标签: javascript arrays

我有这些数据。如您所见,有4个代码,每个代码都有不同的值。

以下是数据:

{
    "code": {
        "1": 20,
        "2": 1,
        "3": 2,
        "10": 1
    }
}

var totals = []

我需要做的是将它们放入总数数组中,以便最终结果如下:

[20,1,2,1]

我该怎么做?

7 个答案:

答案 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#mapObject.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);