发布
社区首页 >问答首页 >如何使用lodash过滤对象的key?

如何使用lodash过滤对象的key?
EN

Stack Overflow用户
提问于 2015-06-09 16:31:25
回答 8查看 211.2K关注 0票数 220

我有一个带有一些键的对象,我想只保留其中一些键的值?

我试着用filter

代码语言:javascript
复制
const data = {
  aaa: 111,
  abb: 222,
  bbb: 333
};

const result = _.filter(data, (value, key) => key.startsWith("a"));

console.log(result);
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>

但它会打印一个数组:

111,222

这不是我想要的。

如何使用lodash来完成此操作?或者其他东西,如果lodash不起作用?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2015-06-09 17:11:53

Lodash有一个 function,它可以做你想要做的事情。

代码语言:javascript
复制
var thing = {
  "a": 123,
  "b": 456,
  "abc": 6789
};

var result = _.pickBy(thing, function(value, key) {
  return _.startsWith(key, "a");
});

console.log(result.abc) // 6789
console.log(result.b)   // undefined
代码语言:javascript
复制
<script src="https://cdn.jsdelivr.net/lodash/4.16.4/lodash.min.js"></script>

票数 333
EN

Stack Overflow用户

发布于 2015-06-09 16:45:38

只需将筛选器更改为omitBy

代码语言:javascript
复制
const data = { aaa: 111, abb: 222, bbb: 333 };
const result = _.omitBy(data, (value, key) => !key.startsWith("a"));
console.log(result);
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>

票数 43
EN

Stack Overflow用户

发布于 2016-06-13 12:15:40

以下是使用lodash 4.x的示例:

代码语言:javascript
复制
const data = {
  aaa: 111,
  abb: 222,
  bbb: 333
};

const result = _.pickBy(data, (value, key) => key.startsWith("a"));

console.log(result);
// Object { aaa: 111, abb: 222 }
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
<strong>Open your javascript console to see the output.</strong>

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30726830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档