Javascript 如何根据两个数组的值连接它们

Javascript 如何根据两个数组的值连接它们,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我有以下阵列: var main_arr = [[54.5,225.5], [45.25,15.54], [1.5, 22.3]]; var sec_arr = [[1.51, 22.35], [54.32,32.54], [4.56,45.45]]; 我想得到第一个数组的最后一个元素,并通过第二个数组的值找到最近的元素 然后我希望找到的元素被推送到主数组中,并从辅助数组中删除。我希望它重复,直到辅助数组中没有元素 结果应该如下所示: [[54.5,225.5], [45.25,15.54],

我有以下阵列:

var main_arr = [[54.5,225.5], [45.25,15.54], [1.5, 22.3]];
var sec_arr = [[1.51, 22.35], [54.32,32.54], [4.56,45.45]];
我想得到第一个数组的最后一个元素,并通过第二个数组的值找到最近的元素

然后我希望找到的元素被推送到主数组中,并从辅助数组中删除。我希望它重复,直到辅助数组中没有元素

结果应该如下所示:

[[54.5,225.5], [45.25,15.54], [1.5, 22.3], [1.51, 22.35], [4.56,45.45], [54.32,32.54]]
var main = [1, 5, 4, 3, 7, 9, 5, 4, 3, 0];
var secondary = [];
distance = [2, 4, 3, 7, 2];
在没有任何框架的情况下,如何使用纯JavasScript来实现这一点

编辑:

我不确定我是否解释得足够好,所以我会给你一个更简单的版本。您有一个主数字数组和一个辅助数字数组。您不能在主目录中重新排序任何内容

var main = [1, 5, 4, 3, 7];
var secondary = [9, 3, 4, 0, 5];
我想得到最接近主数组最后一个元素的数字,并将其推送到主数组中。然后重复该操作,直到辅助数组中没有元素为止。结果应该如下所示:

[[54.5,225.5], [45.25,15.54], [1.5, 22.3], [1.51, 22.35], [4.56,45.45], [54.32,32.54]]
var main = [1, 5, 4, 3, 7, 9, 5, 4, 3, 0];
var secondary = [];
distance = [2, 4, 3, 7, 2];
例子 我将首先给出一个代码示例,然后对其进行详细说明:

let main = [1, 5, 4, 3, 7];
let secondary = [9, 3, 4 0, 5];

for (var i = secondary.length; i > 0; i--) {
    const lastElement = main[main.length-1];
    const distance = secondary.map(item => calculateDistance(item, lastElement));
    const index = indexOfMinValue(distance);
    main.push(secondary[index]);
    secondary.splice(index, 1);
}

function calculateDistance(item, lastElement) {
    // calculate the distance (e.g. (x1-x2)^2 + (y1-y2)^2)
}

function indexOfMinValue(distance) {
    return distance.reduce((iMin, x, i, arr) => x < arr[iMin] ? i : iMin, Number.POSITIVE_INFINITY);
}
indexofmvillue
-函数(取自)生成具有最小距离的元素索引(本例中的第一个)。 使用该索引,您可以
将相应的值从次数组推送到主数组,并将其从次数组中删除

考虑
  • 该算法的复杂度为O(n^2),其中n是辅助数组中的元素数。因此,对于大型阵列,这可能会失控
  • 在其当前形式中,
    索引失效
    产生具有最小距离的第一个元素,前提是多个项目具有相同的距离。它可能需要产生最后的结果或随机选择一个极小值或

是否要合并这些值以便对其进行排序?请添加一个示例,说明您希望从给定的两个值中看到的结果数组。检查JS
push()
method。请定义“最接近的一个值”。这些值是否表示空间中的点,并且您希望找到最小距离?如果这些是某种坐标,并且您试图找到最近的,这可能会对您有所帮助