我的js对象:

data_obj = {'p1': 1, 'p2':2, 'p3':3}


我的数组

data_array = ['p1', 'p3']


现在,我想基于数组过滤对象。预期结果是

fil_obj = {'p1': 1, 'p3':3}


现在,找到具有最大值的密钥。预期结果是

p3


由于我有成千上万的物品,所以我希望有一个非常有效的解决方案。
由于我在该项目中使用的是d3js,因此基于d3js的解决方案(例如d3.max)将是不错的选择。

最佳答案

您可以迭代所需的属性并返回max键。



var data_obj = { p1: 1, p2: 2, p3: 3},
    data_array = ['p1', 'p3'],
    result = data_array.reduce(function (r, a, i) {
        return !i || data_obj[r] < data_obj[a] ? a : r;
    }, undefined);

console.log(result);

关于javascript - Javascript:根据数组过滤键后,在对象中查找具有最大值的键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38906386/

10-11 05:33