我已經搜索高低,不僅在StackOverflow上,而且在網絡上其他許多地方。我嘗試過所有東西,但從根本上說,我的邏輯有些缺陷。我對引入另一個「數組重複」問題表示歉意,但我被卡住了,似乎沒有按預期工作。在多維Javascript數組中返回重複項
無論如何,我有一個多維JavaScript數組,只有2級深。
var array = [[Part #, Description, Qty:],
[Part #, Description, Qty:],
[Part #, Description, Qty:]]; //etc
我需要做的就是創建一個搜索array
並返回任何重複的「零件編號」線的功能。當它們返回時,我想要返回整個內部數組,並完成描述和數量。
這樣做的訣竅是,符合'重複'的部分#將以不同的方式結束(特別是最後4個字符),所以使用String.prototype.substr
對我來說是有意義的。
我知道數組中有重複的數據,所以我知道如果我有解決方案,它會返回這些Part#的。
這是我到目前爲止這讓我最接近的解決方案嘗試:
function findDuplicateResults(arr) {
var result = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i][0].substr(0,5) === arr[++i][0].substr(0,5)) {
result.push(arr[i]);
}
}
return console.log(result);
}
我的想法是,如果陣列(SUBSTR中的元素(0,5 )等於下一個在線,將它推到結果數組,我需要另一個在那裏重複,代碼的要點是隻顯示substr(0,5)的僞造。 有嘗試使用高階函數這樣一個爲每個,減少和過濾(過濾器是讓我不知道爲什麼它不會做我想做的事的過濾器),但是我只能以這種方式返回[]
或整個數組。我用於表示高階函數的邏輯保持不變(這可能是這裏的問題)。
我在期待我的if
條件是最大的問題。任何指針或解決方案,不勝感激。
非常感謝,它的工作!快速跟進,爲什麼arr.length - 1?其餘的很有意義,但我陷入了這一點。再次感謝! –
因爲數組有零基索引。想象一下,你有一個項目的數組。 array.length是1對不對?現在想象你想訪問數組中的項目。數組[1]將不起作用,因爲它不存在。你的項目在數組[0]或數組[array.length - 1] –
,這讓我意識到我應該使用'<='而不是'<。查看更新的答案 –