创建一个数组并排除以以下结尾的对象:

时间:2016-09-25 09:43:01

标签: javascript node.js

我正在使用以下数组进行过滤,以便删除所有以:结尾的对象。有没有一种简单的方法来实现这一点,例如在已经存在的过滤器中实现?

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"]

2 个答案:

答案 0 :(得分:2)

您可以使用:

project_root/doc

答案 1 :(得分:0)

如果您只使用ES5,请尝试以下操作:

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
}, [])