2016-04-26 9 views
0

Я немного начинающий, я надеялся, что кто-то может указать, что я делаю неправильно.Итерация через JS Array + Свойства массива

Идея заключается в том, чтобы searchArray перебирал значения массива &. Он принимает аргументы (свойство, значение). Когда я вызываю функцию, я получаю ссылку RefernencError о том, что свойство (имя хоста) не определено. Что-то не так с браузером [i] .property?

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

Что такое просмотрИстория? Это еще один массив? – Greeso

+0

Да, просмотрИстория - это массив. он имеет в нем объекты со специфическими свойствами. –

ответ

3

browsingHistory[i].property означает значение свойства называемого "собственностью".

использование browsingHistory[i][property] вместо


Demo

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");

+0

Я хочу, чтобы он указывал на значение «property». В основном я мог проверить, есть ли в массиве какие-либо объекты с именем хоста: x –

+0

проверить мою демонстрацию, это то, что вы ищете? – Apolo

+0

Спасибо! Я делал в основном то же самое, но я звонил searchArray (x, foo) не понял, что мне нужно было поместить его в речевые метки. Мне любопытно, почему, хотя –

0

Если вы используете переменную как свойство любого объекта, вы можете использовать с "." синтаксисом . Вы должны использовать его как массив с этим свойством (как индексы массива). Например,

var property = "name"; 
.... 
anyObject[property] // equals to anyObject['name'] or anyObject.name 
Смежные вопросы