我有two arrays with ids鏈接長度。通過鏈接長度,我的意思是 if ArrayAhas length = 4thenArrayB將length等于 with (ArrayA.length * (ArrayA.length - 1)) / 2(這意味著 if ArrayAhas length = 4then ArrayB length = 6, if ArrayAhas length = 5thenArrayB length = 10等等)。
所以假設這些是我的陣列:ArrayA = [1, 2, 3, 4]和ArrayB = [a, b, c, d, e, f].
我必須new array of arrays根據下一個邏輯創建一個:

最后,新陣列應如下所示,其中第二個引數是第一個陣列的值,第三個引數是第二個陣列的值:
[
[uuidv4(), 1, a],
[uuidv4(), 2, a],
[uuidv4(), 1, b],
[uuidv4(), 3, b],
[uuidv4(), 1, c],
[uuidv4(), 4, c],
[uuidv4(), 2, d],
[uuidv4(), 3, d],
[uuidv4(), 2, e],
[uuidv4(), 4, e],
[uuidv4(), 3, f],
[uuidv4(), 4, f]
]
最后,無論陣列的大小如何,我都應該回傳這種陣列,但是陣列具有某種鏈接長度。
我不能用簡單的映射來做到這一點,因為我不知道如何實作這種邏輯。
基本思想是這ArrayA是一個團隊 ID 陣列,ArrayB是一個比賽 ID 陣列,我需要為每個比賽 ID 添加兩個團隊 ID。
感謝您的時間!如果有不清楚的地方,我會盡力解釋得更好。
uj5u.com熱心網友回復:
正如我在您的影像中看到的那樣,邏輯是針對最大陣列中的每個元素,從最短的元素中分配 2 個元素而不重復。為了實作這一點,想法是回圈最大的陣列,并使用 2 個不同的索引 (xIndex0, xIndex1) 將最短陣列的元素分配到一個新陣列中。
在下面的示例中,您可以看到 xIndex0 如何指向要添加的最短陣列中的第一個元素,而 xIndex1 指向要添加的第二個元素,我們正在增加這些索引,具體取決于我們是否已經到達最短陣列的末尾.
var x = [1, 2, 3, 4]
var xIndex0 = 0
var xIndex1 = xIndex0 1
var y = ["a", "b", "c", "d", "e", "f"]
var result = [];
y.forEach((elem,index) => {
result.push([null, x[xIndex0], elem]); //replace null with everything you need
result.push([null, x[xIndex1], elem]);
xIndex1 ;
if(xIndex1 > x.length-1)
{
xIndex0 ;
xIndex1 = xIndex0 1
}
})
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/453242.html
標籤:javascript 节点.js 数组
