查找最相似的数字数组

Yan*_*nic 1 javascript arrays

假设我有两个数组:

a=[168, 76, 62, 86]

b=[168, 80, 65, 90]
Run Code Online (Sandbox Code Playgroud)

我的输入

[166.5, 75.5, 62, 86]
Run Code Online (Sandbox Code Playgroud)

现在,我想将数组“ a”作为“结果”,因为它与“ a”比与“ b”更相似。

我怎样才能做到这一点?

Nin*_*olz 5

您可以收集绝对增量,然后选择误差较小的增量。

var array1 = [168, 76, 62, 86],
    array2 = [168, 80, 65, 90],
    input = [166.5, 75.5, 62, 86],
    error = [array1, array2].map(function (a) {
        return input.reduce(function (r, b, i) {
            return r + Math.abs(a[i] -b);
        }, 0);
    });
  
console.log(error); // [2, 13] take the first one with smaller error.
Run Code Online (Sandbox Code Playgroud)