所以我一直googling了很多,並嘗試使用不同的過濾器陣列等,無濟於事。查找和返回完全匹配(重複)在JavaScript數組
我有一個字符串數組,像這樣:
var foo = ['1X31UX11','X3U11X1','33X11U12'];
有沒有一種方法來檢查相互每個字符串數組中,如果有一個精確匹配(即字符以相同的順序)它打印特定字符串發生多少次&也打印有問題的字符串?
所以我一直googling了很多,並嘗試使用不同的過濾器陣列等,無濟於事。查找和返回完全匹配(重複)在JavaScript數組
我有一個字符串數組,像這樣:
var foo = ['1X31UX11','X3U11X1','33X11U12'];
有沒有一種方法來檢查相互每個字符串數組中,如果有一個精確匹配(即字符以相同的順序)它打印特定字符串發生多少次&也打印有問題的字符串?
function arrayRepeats(array) {
var returnObject = {};
for (var i = 0; i < array.length; i++) {
if (returnObject[array[i]]) {
returnObject[array[i]]++;
} else {
returnObject[array[i]] = 1;
}
}
return returnObject;
}
var foo = ['1X31UX11','X3U11X1','33X11U12'];
console.log(arrayRepeats(foo));
var bar = [1, 1, 2, 1, 3, 1, 31, 3, 1, 5, 4, 1];
console.log(arrayRepeats(bar));
Ah yes , 謝謝!現在它使很多完美!我在類似的方法,但幾乎忘了else語句(使功能幾乎沒用) – user2868900
@ user2868900你可以接受一個答案,以顯示訪問你的問題的人誰給你的答案 – zevee
使用Array#reduce收集每個字符串的出場數到一個對象:
var foo = ['1X31UX11','X3U11X1','33X11U12', '1X31UX11'];
var result = foo.reduce(function(count, str) {
count[str] = (count[str] || 0) + 1;
return count;
}, {});
console.log(result);
是的,這是可能的(實際上相當容易寫自己) - 請顯示你的嘗試,並解釋與t的問題下襬是 – UnholySheep
預期結果是什麼樣子? – zer00ne
這是一箇中等大小的數據集w。 2-300個條目,所以我想收集一個數組或對象中的重複條目,如下所示: ['string 1':15次,'string 2:12 times,'string 3:8 times] – user2868900