我有一个对象,可以说:

var stateValues = {
  CA: 423,
  MI: 90,
  IL: 200,
  OH: 56,
}


如果它们的值小于100,我只想将缩写的状态放入数组中。您能否看一下我的代码并告诉我我做错了什么?请仅以函数式编程的方式建议我,因为我必须针对此问题使用函数式编程。

这是我的尝试:



var stateValues = {
  CA: 423,
  MI: 90,
  IL: 200,
  OH: 56,
}

function lowState(state) {
  if (stateValues[state] < 100000) {
    return Object.keys(stateValues);
  }
}
var lowerSumStates = stateValues.forEach(lowState);

最佳答案

如果将键,过滤器和地图结合在一起,则可以得到想要的结果。

var stateValues = { CA: 423, MI: 90, IL: 200, OH: 56 };
var lowerSumStates = Object.keys( stateValues )
      .filter( key => stateValues[key] < 100 )
      .map( key => stateValues[key] );


https://jsfiddle.net/gtfaqdbt/

08-06 21:31