Как я могу проверить конкретный объект (данные) в массиве? - PullRequest
0 голосов
/ 26 декабря 2018

Я довольно новичок, когда дело доходит до программирования и в настоящее время возникают проблемы.У меня есть массив с 4 элементами (вы можете увидеть массив в разделе кода ниже), и у всех четырех элементов есть свой конкретный идентификатор (1-4).

Вещи, которые я хочу запрограммировать, - это метод, которыйзапускает индивидуальный код для каждого элемента массива.Я думал, что смогу решить эту проблему, сделав if Statement, где я просто проверяю идентификаторы (которые индивидуальны для каждого элемента).Но как я могу это сделать ??

Если у кого-то есть идея получше, он может сказать мне этот идентификатор.

С наилучшими пожеланиями, Джон.

{ id: 1, name: 'BMW', price: 250, quantity: ''},

{ id: 2, name: 'Google', price: 110, quantity: ''},

{ id: 3, name: 'Apple', price: 1000, quantity: ''},

{ id: 4, name: 'Twitter', price: 50, quantity: ''}

Ответы [ 4 ]

0 голосов
/ 26 декабря 2018

Из того, что я понимаю, вы хотите запустить отдельные куски кода для разных элементов в массиве.Если элементы массива являются фиксированными, то есть они не изменяются, то вы можете написать разные фрагменты кода для каждого элемента как функцию и добавить его как свойство к соответствующему элементу.

См. Пример ниже:

let BMWFunction = function(){
   console.log('BMW!');
}

let googleFunction = function(){
   console.log('Google!');
}

let myArray = [
   { id: 1, name: 'BMW', price: 250, quantity: '', code: BMWFunction},
   { id: 2, name: 'Google', price: 110, quantity: '', code: googleFunction }
]

for (let i = 0; i < myArray.length; i++){
   myArray[i].code();
}

затем для каждого элемента, который вы просматриваете в массиве, вы можете вызвать соответствующий атрибут кода.

0 голосов
/ 26 декабря 2018

Вы можете просто перебрать свой массив с помощью цикла for и проверить, равен ли id указанному идентификатору, а затем вернуть весь объект.если идентификатор не совпадает, он вернет undefined.Рассмотрим следующий фрагмент кода:

let array = [{ id: 1, name: 'BMW', price: 250, quantity: ''},

{ id: 2, name: 'Google', price: 110, quantity: ''},

{ id: 3, name: 'Apple', price: 1000, quantity: ''},

{ id: 4, name: 'Twitter', price: 50, quantity: ''}];

function getValue(id)
{
  for( var index=0;index<array.length;index++){
     if( array[index].id === id){
        return array[index];
     }
  };
}

console.log(getValue(1));
console.log(getValue(5));
0 голосов
/ 26 декабря 2018

Просмотрите и сравните id каждого элемента с нужным текстом, используя filter() - обратите внимание, что я могу затем вернуть связанный объект (например, - если вы хотите отобразить имя) - или текстовую строку, если егоотсутствует.

Вы также можете добавить туда логику, чтобы убедиться, что идентификаторы уникальны, т. е. если для заданного идентификатора найдено более одного результата, вам нужно отредактировать идентификатор дубликатов.

let items = [
  { id: 1, name: 'BMW', price: 250, quantity: ''},
  { id: 2, name: 'Google', price: 110, quantity: ''},
  { id: 3, name: 'Apple', price: 1000, quantity: ''},
  { id: 4, name: 'Twitter', price: 50, quantity: ''}
]

function findItem(id){
  
  var foundItem = items.filter(function(item){
    return(item.id == id) 
   });
   
   if(foundItem.length > 0) {
    return foundItem[0];
   } else {
    return "Item not found";
   }
}

console.log(findItem('1')); // returns the object of the BMW
console.log(findItem('6')); // returns "Item not found"
0 голосов
/ 26 декабря 2018

Вы можете достичь этого с помощью оператора if.Для этого есть разные подходы, но основной подход останется прежним.Зацикливайтесь на каждом элементе в массиве, а затем проверяйте идентификаторы.Вы можете использовать традиционные для цикла или вы можете использовать методы, такие как некоторые , фильтр и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...