Javascript:将某些信息推送到Array并从数组中获取信息

时间:2015-05-18 13:39:41

标签: javascript arrays if-statement get set

我对以下问题有疑问:

我为一个由棋子制作的游戏制作了一块棋盘。每一件都有自己的x和y坐标,但也有一个布尔值,它是一条道路与否,而且它是否有一个炮塔。

所以这就是数组:

var Array = [""];            
Array.push({
          x: i, 
          y: j,
          road: false,
          tower: null,
          id: "gamezone"+j+i
        });

现在,Array.push位于一个循环中,它提供了以下信息:该部分有效。现在提出问题:

如何编辑阵列中每个对象的某些信息? 例如,某些部分确实有道路,所以我所做的是:

Array.push({road: true});

但是没有这样做。 我该怎么做?

第二个问题: 如果我想使用数组对象的一些信息,例如我必须使用if (Array(road = true)) then ...创建一个if-else 我不认为这是从数组中获取信息的正确方法,所以请在那里帮助我。

如果您有任何关于此操作的文档,请注意提供链接吗?

非常感谢!

4 个答案:

答案 0 :(得分:1)

使用map函数更改可以创建新数组的值:

var arr = []
arr.push(someObj)
arr = arr.map(function(x, i){
  if(someCondition) {
    x.road = true
  }
  return x
})

获取值使用过滤器函数:

var arr = []
arr.push(someObj)
var sel = arr.filter(function(x, i){
  return someCondition
})

答案 1 :(得分:1)

首先更改变量的名称。而且,按照惯例,以大写字母开头的变量也用于构造函数。

push()在数组末尾添加一个新元素。当您尝试更改某个数组元素的某个属性时,您不应该使用push。如果要更改阵列中的一个对象元素,首先必须找到它。然后改变其财产。

aray[indexOfObject]会找到该对象。您必须知道对象所在的数字索引。如果要使用命名键(而不是数字键)引用对象,则应使用一个对象来保存所有其他对象。但是如果你知道索引,那就是你如何继续:

aray[indexOfObject].road = true;

答案 2 :(得分:1)

您尝试将对象推入对象数组,因此每当您尝试访问或更新这些数组的任何数组元素时,您需要通过数组索引获取它 - 如< - p>

Array[0]

它为数组0中的Array索引提供了对象 无论何时你想要更新某个数组项,你首先需要找到它的索引,然后更新该数组项, 所以要查找索引对应的搜索项,需要自定义查找功能。它也可以使用indexOf()数组对象。 喜欢- 的 Array.indexOf(ArrayItem); 并更新数组项,如下所示 -

Array[0]={
          x: i, 
          y: j,
          road: false,
          tower: null,
          id: "gamezone"+j+i
        };

首先尝试找到要更新的数组元素的索引,然后更新该数组项。

答案 3 :(得分:0)

根据此Loop through an array in JavaScript

您可以迭代数组并检查/修改属性

for (var i = 0; i < yourArray.length; i++) {
    if (yourArray[i].x == 1 && yourArray[i].y == 2)
    {
       // Do something
    }
}