Javascript:如何有条件地使用 Object.keys() 将特定键插入数组?

标签 javascript

我有一个对象,比方说:

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

如果缩写状态的值低于 100,我只想将其放入数组中。我将 forEach() 与 Object.keys 结合使用来尝试执行此操作。你能看一下我的代码并告诉我我做错了什么吗?请告诉我如何使用函数式编程,因为我必须使用函数式编程来解决这个问题。

这是我的尝试:

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/

关于Javascript:如何有条件地使用 Object.keys() 将特定键插入数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43196339/

相关文章:

javascript - 用户在悬停时处于事件状态时的边框底部菜单

JavaScript 错误 - 未捕获的语法错误 : Unexpected number

javascript - 为什么 new Date() 函数在 safari 中不起作用?

javascript - `let` 和 for 循环 block 作用域的说明

函数内部的Javascript调用函数

php - 拍卖网站如何运作?

javascript - 如果元素具有特定类,如何更改 onclick 属性的值?

javascript - 警告 react : setState(. ..):只能更新已安装或正在安装的组件

javascript - 将点击事件附加到 .select2-result 中的元素

javascript - 在 ajax 事件后使用 geocomplete 函数