繁体   English   中英

JavaScript-过滤器 <key,value> 按键对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM