Могу ли я передать массив объекта в filterBy? - PullRequest
0 голосов
/ 18 октября 2018

Моя версия ember 1.13, и я хотел бы спросить, применима ли приведенная ниже строка кода к версии моего приложения ember?

console.log(this.get('arrayOfObjects').filterBy('zoneName', ['zoneNameOne', 'zoneNameTwo']));?

Образецданные selectedZoneOrCityName это

selectedZoneOrCityName = ['zoneNameOne', 'zoneNameTwo'],

Я хочу использовать что-то вроде этого

if (selectedZoneOrCityName) {
  return this.get('arrayOfObjects').filterBy('zoneName', selectedZoneOrCityName).mapBy('cityName');
} else {
  console.log('reads nothing');
  return [];
}

1 Ответ

0 голосов
/ 18 октября 2018

Вы можете использовать простой filter, как показано ниже.

var arrayOfObjects = [
  {
    id: 1,
    name: 'one',
    zoneName: 'zoneNameOne'
  },
  {
    id: 2,
    name: 'two',
    zoneName: 'one zoneName'
  },
  {
    id: 3,
    name: 'three',
    zoneName: 'zoneNameOne'
  },
  {
    id: 4,
    name: 'four',
    zoneName: 'zoneNameTwo'
  }
];

var selectedZoneOrCityName = ['zoneNameOne', 'zoneNameTwo'];
 arrayOfObjects = arrayOfObjects.filter((item) => {
   return selectedZoneOrCityName.includes(item.zoneName);
 });
 
 console.log('final filtered array : ', arrayOfObjects);

если вы используете filterBy, тогда вам нужно chain filterBy для каждого значения массива.

...