2016-09-25 2 views
0

У меня есть следующий массив, который я бы хотел отфильтровать, чтобы все объекты, заканчивающиеся на :, должны быть удалены. есть ли простой способ сделать это, например, внедрить в фильтр, который уже существует?создать массив и исключить объекты, заканчивающиеся на:

var ingredientsArray = ingredients.replace(/<strong>[\s\S]*?<\/strong>/g, '').split('<br>').map(it => it.trim()).filter(it => !!it) 

Это может создать массив, как, например,

["fruits:", "1 lime", "2 lemons"] 

тогда я хочу, чтобы отфильтровать к объектам с : для

["1 lime", "2 lemons"] 
+1

Где находится массив? Можете ли вы создать фрагмент с [mcve] – mplungjan

+0

, я добавил что-то сейчас –

+0

Почему бы не добавить критерии в оператор карты или фильтра? – mplungjan

ответ

2

Вы можете использовать:

["fruits:", "1 lime", "2 lemons"].filter(x => !x.endsWith(':')) 
0

Если вы используете ES5 на LY, попробовать что-то вроде этого:

var ingredientsArray = ingredients.replace(/<strong>[\s\S]*?<\/strong>/g, '').split('<br>') 

var filteredArray = ingredientsArray.reduce(function(acc, item) { 
    item = item.trim() 
    if (item) { 
    if (item[item.length - 1] !== ':') { 
     acc.push(item) 
    } 
    } 

    return acc 
}, []) 

С последними nodejs вы можете использовать ответ CD .. или немного улучшенной версии:

const filteredArray = ingredientsArray.reduce((acc, item) => { 
    item = item.trim() 

    if (item && item.endsWith(':')) { 
    acc.push(item) 
    } 

    return acc 
}, []) 
Смежные вопросы