首页 > 解决方案 > 编写一个函数以从 Json Obj 返回一个“列”数组

问题描述

我正在尝试使用函数从该数组返回值。在这种情况下,所需的结果是 4、3、22。位于 selection1 的第二列

var list = 
{"selection1": [

{"answers": [1, 4, 5, 7]}, 
{"answers": [4, 3, 2, 1]},
{"answers": [10, 22, 12, 34]}, 

],

"selection2": [

{"answers": [31, 34, 35, 37]}, 
{"answers": [44, 43, 42, 41]},
{"answers": [20, 42, 22, 54]}, 

]};

我想通过调用返回所需的列

get_column_from_object(1, list, 'selection1') to return [4, 3, 22]

如何编写允许我从数组中返回这些值的函数?

这也是我得到的地方

var list = {
  "selection1": [{
    "answers": [1, 4, 5, 7]
  }, {
    "answers": [4, 3, 2, 1]
  }, {
    "answers": [10, 22, 12, 34]
  }, ]
};

function get_column_from_object(column_number, array, property) {
  var answer = [];
  for (i = 0; i < array.length; i++) {
    answer.push(array[i][property].answers[column_number]);

  }
  return answer;
}
var new_array = get_column_from_object(1, list, 'selection1');

document.getElementById("demo").innerHTML = new_array;
<p id="demo"></p>

标签: javascriptarraysjsonobject

解决方案


感谢 Barmar 的解决方案

<p id="demo"></p>

<script>
var list = {"selection1": [{"answers": [1, 4, 5, 7]}, {"answers": [4, 3, 2, 1]},{"answers": [10, 22, 12, 34]}, ]};

function get_column_from_object(column_number, object, property) {
  var answer = [];
  var array = object[property];
   for (i = 0; i < array.length; i++) {
     answer.push(array[i].answers[column_number]);

     }
  return answer;
}


var new_array = get_column_from_object(1, list, 'selection1');
document.getElementById("demo").innerHTML = new_array;

</script>

推荐阅读