Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа с массивами (https://javascript.ru/forum/misc/61073-rabota-s-massivami.html)

рони 03.04.2018 23:35

массив поиск по свойству
 
vovang,
function searchProperty(array, property, value) {
  for (var i = 0; i < array.length; i++) {
    var item = array[i];
    if (property in item && item[property] == value) {
      return i;
    }
  }
  return -1;
}
var park = [{busn:111, name:222, marsh:123}, {busn:222, name:777, marsh:333}];
var marshrut = [];
var index = searchProperty(park, "name", "777");
alert(index);
var obj;
if (index !== -1) {
  obj = park.splice(index, 1)[0];
}
if (obj) {
  marshrut.push(obj);
}
alert(JSON.stringify(park));
alert(JSON.stringify(marshrut));

j0hnik 03.04.2018 23:40

arr.find(el=>Object.keys(el).some(el=>el=='нужное свойство'))
вернет первый найденный объект с нужным свойством
arr - это ваш массив с объектами

рони 03.04.2018 23:43

Цитата:

Сообщение от j0hnik
вернет первый найденный объект с нужным свойством

этот код работает?

j0hnik 03.04.2018 23:50

Цитата:

Сообщение от рони (Сообщение 482232)
этот код работает?

var arr = [{a:1},{b:2},{c:3}];
console.log(arr.find(el=>Object.keys(el).some(el=>el=='b')));

рони 04.04.2018 00:00

j0hnik,
:)
Цитата:

- Этот человек - программист, - поворачиваясь к Ватсону говорит сыщик. - Почему вы так решили, Холмс? - Это же элементарно. Он дал абсолютно правильный ответ, который абсолютно бесполезен.

j0hnik 04.04.2018 00:08

рони, пффф... ваш анекдот

j0hnik 04.04.2018 00:10

рони,
а что ваша программка делает?
явно что-то не по ТЗ :D

рони 04.04.2018 00:17

Цитата:

Сообщение от j0hnik
а что ваша программка делает?
явно что-то не по ТЗ

:blink:
ваш совет рабочий, но бесполезный, а пост №11 это то что нужно.

j0hnik 04.04.2018 00:18

var arr = [{busn:111, name:222, marsh:123}, {busn:222, name:777, marsh:333}];
var func = (a,b) => arr.find(el=> Object.keys(el).some(el=>el==a)&& Object.values(el).some(el=>el==b));
console.log(func('name', 777));

а теперь?

Но рабочий же, а вы сомневались, ай ай ай ..

рони 04.04.2018 00:22

Цитата:

Сообщение от j0hnik
а теперь?

но веть вам же дали массив
[{busn:111, name:222, marsh:123}, {busn:222, name:777, marsh:333}];
как это
Цитата:

Сообщение от j0hnik
Object.keys(el) == 'a'

будет искать среди множества свойств?


Часовой пояс GMT +3, время: 12:41.