![](/img/trans.png)
[英]Compare each element of one array to another and find which element is not found
[英]In an array, compare each element with each one and display the differences
我想制作一个 javascript 算法,将 flight1 的值与 rest 的两个值进行比较,然后将航班 2 与航班 1 和航班 3 进行比较。
结果应该是 dif_flight1_flight2 = 10, dif_flight1_flight3 = 110。
var x = [
['flight1', '190'],
['flight2', '200'],
['flight3', '300']
]
存储您的变量,然后根据这些值计算差异。 Google 如何在 JS 中访问/遍历 2d arrays。
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)
});
}
该算法取第一个元素,并将其与其他 N -1 个元素进行比较。 在结果数组上,您有所有差异。
一个问题:你为什么使用数组数组而不是 Object 数组?
每个值都必须与每个值进行比较...
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}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.