#javascript
#javascript
Вопрос:
var people =[{title:'Alan', hasChild:true},
{title:'Alice', hasDetail:true},
{title:'Amos', header'A'},
{title:'Alonzo'},
{title:'Brad'},
{title:'Brent'},
{title:'Billy'},
{title:'Brenda'},
{title:'Callie'},
{title:'Cassie'},
{title:'Chris'}];
Я хочу проверить в этом массиве, содержит ли он в себе ключ, значение header:value
или нет. Я хочу проверить это для каждого элемента.
Комментарии:
1. Я даже не вижу там массива. Пожалуйста, попробуйте опубликовать какой-нибудь реальный код.
Ответ №1:
Это должно сделать это:
for (var i = 0, c = people.length;i < c;i ) {
if (people[i].header) {
// yay
// not sure wether you want to check the value as well
// but if that is the case, you'd do this
if (people[i].header == 'A') {
// do some more stuff
}
} else {
// nay
}
}
Комментарии:
1. Также следует проверить фактическое значение:
if(people[i].header === 'A')
2. @Rudie не уверен, что это реальное требование. OP довольно расплывчатый, но я думаю, что он только хочет посмотреть, присутствует ли параметр
3. Он говорит о
key:value
, поэтому я думаю, что он тоже хочет знать / проверить значение. Действительно, неопределенно.4. если я ничего не пропустил, не будет ли отображаться
undefined
ошибка, если в объекте отсутствуетheader
ключ?5. @naiquevin когда
header
ключ отсутствует,if
оператор будет вычислен какfalse
, что не приведет к ошибке.
Ответ №2:
for(var i = 0; i < array.length; i){
if(array[i]["header"])
//Do stuff with the header
else
//Do stuff without it
}
Это должно сработать… Хотя у вас ошибка в элементе с заголовком — это должно быть header:'A'
, с :
Ответ №3:
вы можете проверить, определено оно или нет, используя typeof
for (var i in arr) {
if (typeof arr[i].header !== 'undefined') {
//key present
} else {
//key not present
}
}