Javascript Array Справка, как найти предмет - PullRequest
0 голосов
/ 09 января 2019

Я довольно новичок в JavaScript и пытаюсь выяснить, как найти элемент в массиве. Если у меня есть:

var myArray = new Array();
myArray.push({ColumnA:1, ColumnB: 10, ColumnC:100);
myArray.push({ColumnA:1, ColumnB: 20, ColumnC:200);
myArray.push({ColumnA:2, ColumnB: 10, ColumnC:300);
myArray.push({ColumnA:2, ColumnB: 20, ColumnC:400);

Если я хочу вернуть значение ColumnC для ColumnA = 1 и Column 2 = 20, как мне это сделать?

Ответы [ 3 ]

0 голосов
/ 09 января 2019

Сначала я бы отфильтровал массив на основе ваших критериев

var filteredArray = NECtable430250.filter(function (element) {
    return element.ColumnA == 1 && element.ColumnB == 20
});

//Produces [{ColumnA:1, ColumnB: 20, ColumnC:200}];

Далее, вы можете получить один элемент в FilterArray (я бы порекомендовал проверить, что он имеет хотя бы один элемент) и получить значение для ColumnC.

if(filteredArray.length > 0) {
    var ColumnC = filteredArray[0].ColumnC;
    //do stuff with ColumnC
}
0 голосов
/ 09 января 2019

Просто find() эти два значения в массиве примерно так:

 

var myArray = new Array();
myArray.push({ColumnA:1, ColumnB: 10, ColumnC:100});
myArray.push({ColumnA:1, ColumnB: 20, ColumnC:200});
myArray.push({ColumnA:2, ColumnB: 10, ColumnC:300});
myArray.push({ColumnA:2, ColumnB: 20, ColumnC:400});

var yourValue = myArray.find(e => e.ColumnA == 2 && e.ColumnB == 20 ? true : false);
console.log(theValue);
0 голосов
/ 09 января 2019

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

var myArray = new Array();
myArray.push({ColumnA:1, ColumnB: 10, ColumnC:100});
myArray.push({ColumnA:1, ColumnB: 20, ColumnC:200});
myArray.push({ColumnA:2, ColumnB: 10, ColumnC:300});
myArray.push({ColumnA:2, ColumnB: 20, ColumnC:400});

var found = myArray.find(function(object) {
  return object.ColumnA == 1 && object.ColumnB == 20;
}); 

var foundMultiple = myArray.filter(function(object) {
  return object.ColumnA == 1 && object.ColumnB == 20;
});

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