在javascript中访问对象数组中的所有值

时间:2015-09-12 20:06:23

标签: javascript

我正在尝试访问对象数组中的所有值。 我的数据结构是这样的:

var data = [
  obj{
    x: 1,
    y: 2
  },
  obj{
    x:3,
    y:9
  }
]

我想一次获得每个x的值。

我尝试使用for循环,然后将值分配给全局变量,如下所示:

var var startValue;
var startYValue;
var startXValue;
var endYValue;
var endXValue;
var endValue;
for (var i = 0; i < data.length; i++) {
  endYValue = data[i].endY;
  endXValue = data[i].endX;
  endValue = { x:endYValue, y:endXValue }
  startYValue = data[i].startY;
  startXValue = data[i].startX;
  startValue = { x:data[i].startY, y:data[i].startX }
  console.log(endValue.x)
    }

  console.log(endValue.x)

我发现第一个console.log(endValue.x)工作但是当我在全局控制台.log(endValue.x)时,它只显示最后的x值而不是所有的x值。

任何帮助都将非常感谢!!

2 个答案:

答案 0 :(得分:0)

您的数据数组应该只是每个项目的对象,然后我们可以循环并将每个prop分配给另一个数组:

var data = [{x:1, y:2}, {x:3,y:9}];
var arr = [];

// get values of every x at once.
for (var i=0; i<data.length; i++) arr.push(data[i].x);
console.log(arr); // [1, 3]

答案 1 :(得分:0)

存在in运算符for循环:

var data = [{x:10, y: 20}, {x: 30, y: 40}];
for (var i in data) {
    var obj = data[i];

    if (!obj)
        continue;

    console.log(obj.x);
    console.log(obj.y);
}

要访问第一个对象:vas startValue = data[0];

要访问最后一个对象:vas startValue = data[data.length - 1];

循环througs数组并找到最低/最大x / y值:

var upperLeft = {x: data[0].x, y: data[0].y};
var bottomRight = {x: data[0].x, y: data[0].y};

for (var i in data) {
    var obj = data[i];

    if (!obj)
        continue;

    if (obj.x < upperLeft.x)
        upperLeft.x = obj.x;

    if (obj.y < upperLeft.y)
        upperLeft.y = obj.y;

    if (obj.x > bottomRight.x)
        bottomRight.x = obj.x;

    if (obj.y > bottomRight.y)
        bottomRight.y = obj.y;

}

console.log(JSON.stringify(upperLeft));
console.log(JSON.stringify(bottomRight));