[英]Javascript arrays: merge 2 arrays with priority
如何合並兩個不同長度的數組以及較短數組的值應該優先於較大數組的值,但是結果仍應具有較大數組的長度。 請仔細查看我如何排列以下兩個數組:
var short = [[ 25,12], [576, 12], [576,584], [ 25,584], [ 25,12]];
var long = [[301,12],[400,192],[602,230],[461,380],[487,584],[301,497],[115,584],[140,380],[301,12]];
// --------------------as suggested by the above
var result = [[ 25,12],[400,192],[576, 12],[461,380],[576,584],[301,497],[ 25,584],[140,380],[ 25,12]];
在上面的示例中, long
的長度似乎是short
兩倍,但是即使它的大小是原來的三倍或只是一個元素長,它也應該起作用。
這很簡單。 只需創建較長數組的副本,然后用較短數組中的元素覆蓋此副本中的元素。
var m = Math.floor(long.length/short.length);
var result = long.slice();
for(var i = 0; i < short.length; ++i) {
result[i*m] = short[i];
}
: Actually, this is wrong. :實際上,這是錯誤的。 這個問題中有趣的問題是間距算法,您不能通過這種特殊的簡單乘法來獲得間距算法。
無論如何,我都會在這里留下這個答案,因為這可能有助於弄清這個問題是什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.