Javascript 查找两个二维数组之间的共同值

标签 javascript multidimensional-array

我有两个二维数组,例如:

var data_consumed_dollars = [[1356998400000, 0.030380282850000006], [1357002000000, 0.0395505288], [1357005600000, 0.04084797307500001]];

var data_solargeneration_dollars = [[1356998400000, 0.030972182850000006], [1357178400000, 0], [1357182000000, 0], [1357185600000, 0], [1357189200000, 0], [1356998400000, 0.030380282850000006]];

我需要找到这两个数组中的共同值。到目前为止我已经尝试过了

var ab = [];
var data_consumed_dollars_common = [];
for (var i = 0; i < data_consumed_dollars.length; i++) {
    var a, b;
    if (parseFloat(data_solargeneration_dollars[i][0]) > parseFloat(data_consumed_dollars[i][0])) {
        a = data_consumed_dollars[i][0];
        ab.push(data_consumed_dollars[i][0]);
    }
    else a = data_solargeneration_dollars[i][0];
    b = data_solargeneration_dollars[i][1];

    data_consumed_dollars_common.push([ a, b ]);
}

但是 data_consumed_dollars_common 没有返回所需的结果。

最佳答案

对于您的代码,我假设您正在寻求的是为两个数组中的每个 id 获取更大的值。

这并不完全是它们的交集。两个组的交集是一个包含两个原始组中都存在的元素的组。

首先,使用 Javascript,如果您采用基于类似 JSON 的对象的数据结构,则可能会更容易运行:

var data_consumed_dollars = { "1356998400000": 0.030380282850000006, "1357002000000": 0.0395505288, "1357005600000": 0.04084797307500001 };

var data_solargeneration_dollars = { "1357174800000": 0, "1357178400000": 0, "1357182000000": 0, "1357185600000": 0, "1357189200000": 0, "1356998400000": 0.030380282850000006 };

但是,这可能是有争议的,所以请记住它作为一个选项。

我认为,可能导致您的代码无法按您想要的方式工作的原因是您在 else 之后缺少 {},因此在每次迭代时,您推送到 b 的值始终是 data_solar Generation_dollars[i][1] ;

遗憾的是,这只能是一个假设,因为我实际上不确定您要什么......

关于Javascript 查找两个二维数组之间的共同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26905855/

相关文章:

javascript - 使用 AngularJS 进行多服务 http 调用

C++:如何创建多类型和多维数组格式?

c - 在 C 中初始化数组不起作用

javascript - jQuery 替换许多类中的字符串

javascript - 如何使用谷歌图表绘制具有一个字段和多种颜色的柱形图

java - 如何在二维数组中添加相邻单元格?

c - 如何在 C 函数中传递二维数组(矩阵)?

python - Numpy:当所有数组的长度相同时,创建一个 numpy 数组的一维数组

javascript - d3.js:具有两个一维数组的嵌套选择

javascript - redux.js 中的 fetch(url) 使用错误的端口