JavaScript - 按键过滤<key,value> Object

时间:2017-11-21 20:15:28

标签: javascript

我正在寻找一种通过密钥过滤对象的简短而有效的方法,我有这种数据结构:

{"Key1":[obj1,obj2,obj3], "Key2":[obj4,obj5,obj6]}

现在我想按键过滤,例如"Key1"

{"Key1":[obj1,obj2,obj3]}

4 个答案:

答案 0 :(得分:2)

var object = {"Key1":[1,2,3], "Key2":[4,5,6]};
var key1 = object["Key1"];
console.log(key1);

答案 1 :(得分:1)

您可以将.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行中您应该发表自己的声明。我希望它可以帮到你。

答案 2 :(得分:0)

您可以使用Object.keys和数组.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)

答案 3 :(得分:0)

不确定您到底想要实现的目标,但如果您想拥有一组想要获取数据的密钥,那么您有很多选择,一个是:

var keys = ['alpha', 'bravo'];
var objectToFilterOn = {
  alpha: 'a',
  bravo: 'b',
  charlie: 'c'
};

keys.forEach(function(key) {
  console.log(objectToFilterOn[key]);
});