Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在数组中,将每个元素与每个元素进行比较并显示差异_Javascript_Arrays - Fatal编程技术网

Javascript 在数组中,将每个元素与每个元素进行比较并显示差异

Javascript 在数组中,将每个元素与每个元素进行比较并显示差异,javascript,arrays,Javascript,Arrays,我想制作一个javascript算法,将flight1的值与其余两个值进行比较,然后将flight2与flight1和flight3进行比较 结果应该是dif_flight1_flight2=10,dif_flight1_flight3=110 var x = [ ['flight1', '190'], ['flight2', '200'], ['flight3', '300'] ] 存储变量,然后根据这些值计算差值。谷歌如何访问/遍历JS中的二维数组 va

我想制作一个javascript算法,将flight1的值与其余两个值进行比较,然后将flight2与flight1和flight3进行比较

结果应该是dif_flight1_flight2=10,dif_flight1_flight3=110

var x = [
      ['flight1', '190'],
      ['flight2', '200'],
      ['flight3', '300']
]

存储变量,然后根据这些值计算差值。谷歌如何访问/遍历JS中的二维数组

var flight1 = (x[0][1]); // 190

var flight2 = (x[1][1]); // 200

var flight3 = (x[2][1]); //300

// Note the variables can be named anything that I declared
var difference = flight2 - flight1; //difference equals 10
你可以这样做:

 var x = [
      ['flight1', '190'],
      ['flight2', '200'],
      ['flight3', '300']
];

var result = [];
for(let i = 1; i < x.length; i++) {
    let value = parseInt(x[0][1]) - parseInt(x[i][1]);
    let element = 'diff_' + x[0][0] + '_' + x[i][0];
    result.push({
        key: element,
        value: Math.abs(value)
    });
}
var x=[
['flight1','190'],
['flight2','200'],
['flight3','300']
];
var结果=[];
for(设i=1;i
该算法取第一个元素,并与其他N-1个元素进行比较。在结果数组中,您拥有所有差异


一个问题:为什么使用数组而不是对象数组?

必须将每个值与每个值进行比较

function test_dif(){

        var x = [
              ['flight1', '190'],
              ['flight2', '200'],
              ['flight3', '300']
        ];

        var result = [];
        for(let i = 0; i < x.length; i++) {
            for(let c = 0; c < x.length; c++){
                    let value = parseInt(x[c][1]) - parseInt(x[i][1]);
                    let element = 'diff_' + x[c][0] + '_' + x[i][0];
                    result.push({
                        key: element,
                        value: Math.abs(value)
                    });
           }
         }

        return result;

    }

只需使用减法运算符?您还可以使用循环遍历数组,并在循环中进行计算检查此
0: {key: "diff_flight1_flight1", value: 0}
1: {key: "diff_flight2_flight1", value: 10}
2: {key: "diff_flight3_flight1", value: 110}
3: {key: "diff_flight1_flight2", value: 10}
4: {key: "diff_flight2_flight2", value: 0}
5: {key: "diff_flight3_flight2", value: 100}
6: {key: "diff_flight1_flight3", value: 110}
7: {key: "diff_flight2_flight3", value: 100}
8: {key: "diff_flight3_flight3", value: 0}