[英]JavaScript - Filter <key,value> Object by key
我正在寻找一种快捷有效的按键过滤对象的方法,我具有这种数据结构:
{"Key1":[obj1,obj2,obj3], "Key2":[obj4,obj5,obj6]}
现在,我想按键进行过滤,例如按"Key1"
进行过滤:
{"Key1":[obj1,obj2,obj3]}
var object = {"Key1":[1,2,3], "Key2":[4,5,6]}; var key1 = object["Key1"]; console.log(key1);
您可以使用.filter
js函数过滤对象内部的值
var keys = {"Key1":[obj1,obj2,obj3], "Key2":[obj4,obj5,obj6]};
var objectToFind;
var keyToSearch = keys.filter(function(objects) {
return objects === objectToFind
});
keyToSearch
是一个数组,其中所有对象都按objectToFind
变量进行过滤。
请记住,在该行中return objects === objectToFind
是您必须执行语句的地方。 希望对您有所帮助。
您可以结合使用Object.keys
和array .reduce
方法,根据一些自定义过滤条件创建一个新对象。 请注意,这仅适用于es6:
var myObject = {"Key1":["a","b","c"], "Key2":["e","f","g"]} function filterObjectByKey(obj, filterFunc) { return Object.keys(obj).reduce((newObj, key) => { if (filterFunc(key)) { newObj[key] = obj[key]; } return newObj; }, {}); } const filteredObj = filterObjectByKey(myObject, x => x === "Key1") console.log(filteredObj)
不确定要达到的目标是什么,但是如果您想要一组要获取其数据的密钥,则有很多选择,一个是:
var keys = ['alpha', 'bravo'];
var objectToFilterOn = {
alpha: 'a',
bravo: 'b',
charlie: 'c'
};
keys.forEach(function(key) {
console.log(objectToFilterOn[key]);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.