Javascript:根据数组过滤键后找到对象中具有最大值的键

标签 javascript arrays

我的js对象:

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

我的数组

data_array = ['p1', 'p3']

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

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

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

p3

由于我有数千个项目的对象,我期望一个非常有效的解决方案。 由于我在这个项目中使用 d3js,因此基于 d3js(例如 d3.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:根据数组过滤键后找到对象中具有最大值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38906386/

相关文章:

java - 通过 REST Web 服务发送字节数组并接收字符串

c - 从结构体指针数组中删除元素

javascript - 在哪里发送 JWT token ?

javascript - 使用 jQuery 删除所有数据表

javascript - 无法理解 Exercism.io

javascript - 试图理解处理多维数组的 Javascript 代码行

python - 所有子数组的最大值乘以它们的长度的总和,线性时间

javascript - 对 Google 可视化表进行排名

javascript - enzyme :在模拟 "click"时,测试异步更改的状态值

PHP FTP 上传数千个文件