Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 03.04.2018, 23:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

массив поиск по свойству
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));

Последний раз редактировалось рони, 03.04.2018 в 23:41.
Ответить с цитированием
  #12 (permalink)  
Старый 03.04.2018, 23:40
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

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

Последний раз редактировалось j0hnik, 04.04.2018 в 00:42.
Ответить с цитированием
  #13 (permalink)  
Старый 03.04.2018, 23:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от j0hnik
вернет первый найденный объект с нужным свойством
этот код работает?
Ответить с цитированием
  #14 (permalink)  
Старый 03.04.2018, 23:50
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от рони Посмотреть сообщение
этот код работает?
var arr = [{a:1},{b:2},{c:3}];
console.log(arr.find(el=>Object.keys(el).some(el=>el=='b')));

Последний раз редактировалось j0hnik, 04.04.2018 в 00:42.
Ответить с цитированием
  #15 (permalink)  
Старый 04.04.2018, 00:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

j0hnik,

Цитата:
- Этот человек - программист, - поворачиваясь к Ватсону говорит сыщик. - Почему вы так решили, Холмс? - Это же элементарно. Он дал абсолютно правильный ответ, который абсолютно бесполезен.
Ответить с цитированием
  #16 (permalink)  
Старый 04.04.2018, 00:08
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

рони, пффф... ваш анекдот
Ответить с цитированием
  #17 (permalink)  
Старый 04.04.2018, 00:10
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

рони,
а что ваша программка делает?
явно что-то не по ТЗ
Ответить с цитированием
  #18 (permalink)  
Старый 04.04.2018, 00:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

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

ваш совет рабочий, но бесполезный, а пост №11 это то что нужно.
Ответить с цитированием
  #19 (permalink)  
Старый 04.04.2018, 00:18
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

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

а теперь?

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

Последний раз редактировалось j0hnik, 04.04.2018 в 00:39.
Ответить с цитированием
  #20 (permalink)  
Старый 04.04.2018, 00:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от j0hnik
а теперь?
но веть вам же дали массив
[{busn:111, name:222, marsh:123}, {busn:222, name:777, marsh:333}];
как это
Сообщение от j0hnik
Object.keys(el) == 'a'
будет искать среди множества свойств?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами, help! tvv90 Общие вопросы Javascript 11 02.02.2016 10:34
Работа с массивами BorisBritva jQuery 6 23.02.2014 18:31
Постоянная работа / Front-end / Москва kooper Работа 4 29.09.2011 22:06
Работа с массивами. Требуется помощь. Кристи Общие вопросы Javascript 3 08.02.2011 18:00
работа с массивами one-two Работа 11 31.01.2011 16:30