我想对带有值作为字符串的对象使用reduce。如果该值不包含目标字母,则将该值推入数组。

例如:

var animals = {a: 'pig', b: 'pony', c:'possum'};

useReduce(animals, "i"); // returns ['pony', 'possum'];


这是我到目前为止的内容,但出现错误:

var useReduce = function(obj, target) {
  obj.reduce(function(previousValue, currentValue, key, obj) {
    if (currentValue.indexOf(target) === -1) {
      previousValue.push(currentValue);
    };
  }, []);
  return previousValue;
};

最佳答案

您可以将对象转换为键数组,然后可以减少键。此外,previousValue依赖于前一个调用的返回值。您忘了归还还原。

function useReduce(obj, target) {
  return Object.keys(obj).reduce((previousValue, key) => {
    if (obj[key].indexOf(target) === -1) previousValue.push(key);
    return previousValue;
  }, []);
}

关于javascript - 在对象上使用reduce返回数组中不包含目标字母的单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37288223/

10-11 12:56