在Javascript中合并(或concat,combine?)一个Object的数组

时间:2015-10-19 03:01:26

标签: javascript arrays json

你好我是Js新手并使用stackoverflow来提问第一个问题。

当我使用Jquery的Ajax()来获取JSON响应时。

看起来像:

来自php的1.response_data // // JSON_encode(response_data);

2.data_array = JSON.parse(response_data)//解析后看起来像:

data_array = [[student : John , Score :{10, 40, 22}],
              [student : Mary , Score :{20, 50, 66}],
              [student : Ken  , Score :{30, 60, 88}]];

3.我将如何做到这一点

a = [10,20,30];
b = [40,50,60];
c = [22,66,88];

4.因为我需要将每个人的分数分配给不同的对象

Math : [10, 20, 30];
English : [40, 50, 60];
physics : [22, 66, 88];

4 个答案:

答案 0 :(得分:0)

我认为data_array变量输入错误但是为了回答你的问题,你可以这样做:

var new_array = data_array.map(function(item){
    return item.Score;
});

var a = new_array[0], b = new_array[1], c = new_array[2];

答案 1 :(得分:0)

在data_array上尝试使用Array对象的每个方法。阅读有关foreach here的更多信息。

var data_array = [{student : "John" , Score :[10, 40, 22]},
              {student : "Mary" , Score :[20, 50, 66]},
              {student : "Ken"  , Score :[30, 60, 88]}];
console.log(data_array);

var math_arr = [];
var english_arr=[];
var physics_arr = [];

data_array.forEach(function(i){
   math_arr.push(i.Score[0])
   english_arr.push(i.Score[1])
   physics_arr.push(i.Score[2])

});
document.getElementById("app").innerHTML = "Math Score " + math_arr + "<br/>"+ "English Score " + english_arr + "<br/>"+"Physics Score " + physics_arr + "<br/>";

console.log(math_arr,english_arr,physics_arr);
<div id="app">
   
  </div>

答案 2 :(得分:0)

在这种情况下,您必须编写一个函数来执行此操作:

function getScore(data_array) {
    var scores = { a: [], b: [], c: [] };

    for (var i = 0; i < data_array.length; i++) {
        scores.a.push(data_array[i].Score[0]);
        scores.b.push(data_array[i].Score[1]);
        scores.c.push(data_array[i].Score[2]);
    }
    return scores;
}

因此,当您致电getScore(data_array)时,您会得到以下结果:

{
    a: [10,20,30],
    b: [40,50,60],
    c: [22,66,88]
}

答案 3 :(得分:0)

var englishScore = [];
var mathScore = [];
var physicsScore = [];

for(i=0;i<data.length;i++){
    score = data[i].Score.split(",");
    englishScore.push(score[0]);
    mathScore.push(score[1]);
    physicsScore.push(score[2]);
}

希望它有所帮助。