通过JS Array + Array Properties迭代

时间:2016-04-26 15:29:17

标签: javascript arrays

我有点新手我希望有人可以指出我做错了什么。

想法是searchArray循环遍历数组值和属性。它接受参数(属性,值)。当我调用该函数时,我得到一个RefernencError,说明属性(主机名)是未定义的。 browserHistory [i] .property有什么问题吗?

function searchArray(property, value) {
    for (i = 0; i < browsingHistory.length; i++) {
        return value === browsingHistory[i].property;
    }
}

2 个答案:

答案 0 :(得分:3)

browsingHistory[i].property表示名为&#34; property&#34;。

的属性的值

使用browsingHistory[i][property]代替

演示

&#13;
&#13;
function searchArray(property, value) {
    for (i = 0; i < my_array.length; i++) {
        return value === my_array[i][property];
    }
}


var my_array = [
  {
    x: "foo",
    y: "bar"
  },
  {
    x: "foooooo",
    y: "baaaaar"
  }
]


// should output "true" because my array contains an element with a 
// property named "x" and which value is "foo"
document.body.innerHTML = searchArray("x","foo");
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果您使用变量作为任何对象的属性,则可以使用“”语法。您必须将其用作具有该属性的数组(类似数组索引)。例如

var property = "name";
....
anyObject[property] // equals to anyObject['name'] or anyObject.name