我有一个带有一些键的对象,我想只保留其中一些键的值?
我试着用filter
const data = {
aaa: 111,
abb: 222,
bbb: 333
};
const result = _.filter(data, (value, key) => key.startsWith("a"));
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
但它会打印一个数组:
111,222
这不是我想要的。
如何使用lodash来完成此操作?或者其他东西,如果lodash不起作用?
发布于 2015-06-09 17:11:53
Lodash有一个 function,它可以做你想要做的事情。
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
<script src="https://cdn.jsdelivr.net/lodash/4.16.4/lodash.min.js"></script>
发布于 2015-06-09 16:45:38
只需将筛选器更改为omitBy
const data = { aaa: 111, abb: 222, bbb: 333 };
const result = _.omitBy(data, (value, key) => !key.startsWith("a"));
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
发布于 2016-06-13 12:15:40
以下是使用lodash
4.x的示例:
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 }
<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>
https://stackoverflow.com/questions/30726830
复制相似问题