Вопрос по массивам javascript

Есть такие данные
var obj = {
spa_3428: [ 2,4,6 ],
spa_3361: [ 4,6,7,8,9 ],
spa_1412: [ 2,4,6,7,9 ],
spa_4105: [ 4,6,8,9 ],
spa_5072: [ 4,6,7,9 ],
spa_5042: [ 4,7,8,9 ],
spa_4005: [ 4,6,7,8,9 ]
}
Необходимо пробежаться и найти в каком массиве объекта spa_ нет положим цифры 7 — это spa_4105, spa_3428
не пойму как это сделать, запутался уже?
Спасибо.
  • Вопрос задан
  • 3505 просмотров
Решения вопроса 1
var rez=[]
for(var key in obj)if(obj[key].indexOf(7)==-1)rez.push(key);
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Хотя и ответили, но ещё вариант для разнообразия —
Object.keys(obj).filter(function(x){ return !~obj[x].indexOf(7); }) 
Ответ написан
Slavenin999
@Slavenin999
программист php/erlang/elixir/js
можно еще так:
for(var key in obj)
{
  if(obj[key].join('').search(/\,[\s]*7[\s]*\,/)==-1)
  {
    console.log(key);
  }
}
Ответ написан
@rPman
Тут два пути — поэлементный поиск (последовательно или рекурсивно, циклом или callback, не важно) либо сериализуем (самое быстрое — JSON.stringify) все данные или поэлементно и уже ищем подстроки ",7,", "[7" и ",7]"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы