我有一个带有一些键的对象,我想只保留一些键值?
我尝试过filter:
const data = {
aaa: 111,
abb: 222,
bbb: 333
};
const result = _.filter(data, (value, key) => key.startsWith("a"));
console.log(result);Run Code Online (Sandbox Code Playgroud)
但它打印一个数组:
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>Run Code Online (Sandbox Code Playgroud)
这不是我想要的.
如何用lodash做到这一点?或者其他什么,如果lodash不工作?
编辑:不是重复的,因为我的问题不要求删除特定键,而是在数组中找不到所有键。
在下面,函数从对象中redux1删除与未列出的键对应的条目。keys_to_keepdata
鉴于我有一个要保留的对象键列表,我如何redux1以更简洁的方式重写,最好使用map,filter或reduce?
var data = [
{name: 'John', city: 'London', age: 42},
{name: 'Mike', city: 'Warsaw', age: 18},
{name: 'Jim', city: 'New York', age: 22},
{name: 'Celine', city: 'Tokyo', age: 54},
]
var keys_to_keep = ['name', 'city']
function redux1(data) {
data.forEach((person) => {
Object.keys(person).forEach((key) => {
if (!keys_to_keep.includes(key)) {
delete (person[key])
}
})
})
console.log(data)
}
function redux2(data) {
var reduced = data.filter(person => Object.keys(person).filter(key => keys_to_keep.includes(key))) …Run Code Online (Sandbox Code Playgroud)