2017-01-17 2 views
-1

Как сравнить ниже массив строк и массив объектов и выплеснуть значения, не соответствующие в другом массиве?Сравнение массива строк с другим массивом

Массив строк:

["2018", "2017", "2016", "2015", "2014"] 

Массив объектов:

[ {"fiscalYear": "2018"},{"fiscalYear": "2017"},{"fiscalYear": "2016"}] 

Ожидаемый результат должен быть какой-то другой массив строк ["2015", "2014"].

Спасибо!

ответ

3

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

const arr1 = ["2018", "2017", "2016", "2015", "2014"] 
 
const arr2 = [{"fiscalYear": "2018"},{"fiscalYear": "2017"},{"fiscalYear": "2016"}] 
 

 
const result = arr1.filter(val => !arr2.find(el => el.fiscalYear === val)) 
 

 
console.log(result)

1

В принципе @ ответ dfsq, но без использования функции стрелок (ES6):

var years = ["2018", "2017", "2016", "2015", "2014"]; 
 
var fiscalYears = [ {"fiscalYear": "2018"},{"fiscalYear": "2017"},{"fiscalYear": "2016"}]; 
 

 
var filtered = years.filter(function(year1) { 
 
    return !(fiscalYears.find(function(year2) { 
 
    return (year2.fiscalYear === year1); 
 
    })); 
 
}); 
 

 
console.log(filtered);

1

Если у вас возникли проблемы с это, вы, возможно, захотите сделать это старомодным способом изучения основ.

var years = ["2018", "2017", "2016", "2015", "2014"]; 
 

 
objects = [ {"fiscalYear": "2018"},{"fiscalYear": "2017"},{"fiscalYear": "2016"}]; 
 

 
var yearsNotFound = []; 
 

 
for (var i = 0; i < years.length; i++) { 
 
    var found = false; 
 
    for (var j = 0; j < objects.length; j++) { 
 
     if (years[i] == objects[j].fiscalYear) { 
 
      found = true; 
 
      break; 
 
     } 
 
    } 
 
    
 
    if (!found) 
 
     yearsNotFound.push(years[i]); 
 
} 
 

 
console.log(yearsNotFound);

Я бы, наверное, предпочел ответ от @dfsq, но если вы новичок, я не думаю, что это будет больно смотреть на то, как это сделать со старым хорошим старомодным для петель , Знание этого поможет вам понять, как в будущем перемещаться по различным структурам данных.

Смежные вопросы