Соответствует конкретному тексту в значении свойства массива, затем заменяет и выводит только замененные значения - PullRequest
0 голосов
/ 14 мая 2018

Я хочу отфильтровать следующий массив по значениям.Значения, включая «-usd», необходимо заменить без «-usd».После этого я хочу выводить только те значения, которые заменены!а не лошадь или мышь.Как я могу это сделать?

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

arr = [
          {animal: 'cat', price: 150},
          {animal: 'dog', price: 350},
        ]

Пока я сделал это:

arr = [
      {animal: 'cat-usd', price: 150},
      {animal: 'dog-usd', price: 350},
      {animal: 'horse', price: 5000},
      {animal: 'mouse', price: 50}
    ]


    var filter = arr.map((i, k) => {
      var ret = i.animal.replace(/-USD/gi, '')
      return ret;
    })

    console.log(filter)

JSBIN

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Проверьте для i.animal.indexOf('-usd') !== -1 в вашем filter методе.

arr = [
  {animal: 'cat-usd', price: 150},
  {animal: 'dog-usd', price: 350},
  {animal: 'horse', price: 5000},
  {animal: 'mouse', price: 50}
];

var filter = arr.filter((i, k) => {
  if(i.animal.indexOf('-usd') !== -1){
    i.animal = i.animal.replace(/-USD/gi, '');
    return i;
  }
})

console.log(filter)
0 голосов
/ 14 мая 2018

вы можете сначала отфильтровать те, которые имеют -usd в них, а затем использовать вашу функцию карты

var filter = arr.filter(i => i.animal.indexOf('-usd') >= 0).map((i, k) => {
      var ret = i.animal.replace(/-USD/gi, '')
      return ret;
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...