javascript 对象过滤器 - 不返回关联键

标签 javascript arrays filter underscore.js

使用 underscorejs 我可以过滤对象中的数据,但它不会保留它的键。有没有办法用键取回对象

var data = {
  foo: 'fff',
  bar: 'sss',
  aaa: 'gggg'
}
console.info('returns array with keys:')

console.log(data)

var ret = _.filter(data, function(el, key) {
  if (key == 'foo' || el == 'sss') {
    return true
  }
})

console.info('keys are lost?')
console.log(ret)

这是 fiddle :https://jsfiddle.net/7L7tmq7s/

最佳答案

不用过滤器就可以解决:

console.log(data)
var filtered = {};
var ret = _.each(data, function(el, key) {
  if ((key == 'foo' || el == 'sss')) {
    filtered[key] = el;
  }
})

console.info('keys are not lost?')
console.log(filtered)

工作代码here

关于javascript 对象过滤器 - 不返回关联键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35151037/

相关文章:

javascript - 如何知道数组是单维还是多维?

Javascript 函数数组删除项目

algorithm - Neatimage 使用哪种算法对图像进行去噪?

javascript - jQuery循环遍历具有相同类的动态创建的元素

c++ - 需要生成100到500的随机数

javascript - 对于从 ASP.NET MVC 中的主视图中删除的 View ,我应该在哪里包含一个 javascript 引用?

r - 从 df 中选择行,根据它们的值进行子组(逐一)

python - 在 Python 中识别视觉上相似的字符串

javascript - XMP 对象需要 setProperty 语法

javascript - 在 Passport.js 中验证多个模型