पता करने के लिए :
समारोह:
var hasDupsSimple = function(array) {
return array.some(function(value) { // .some will break as soon as duplicate found (no need to itterate over all array)
return array.indexOf(value) !== array.lastIndexOf(value); // comparing first and last indexes of the same value
})
}
टेस्ट:
hasDupsSimple([1,2,3,4,2,7])
// => true
hasDupsSimple([1,2,3,4,8,7])
// => false
hasDupsSimple([1,"hello",3,"bye","hello",7])
// => true
ऑब्जेक्ट की श्रृंखला हम पहले एक सरल सरणी के लिए वस्तुओं के मूल्यों में बदलने की आवश्यकता के लिए:
परिवर्तित map
के साथ सरल सरणी में वस्तुओं की सरणी:
var hasDupsObjects = function(array) {
return array.map(function(value) {
return value.suit + value.rank
}).some(function(value, index, array) {
return array.indexOf(value) !== array.lastIndexOf(value);
})
}
टेस्ट:
var cardHand = [
{ "suit":"spades", "rank":"ten" },
{ "suit":"diamonds", "rank":"ace" },
{ "suit":"hearts", "rank":"ten" },
{ "suit":"clubs", "rank":"two" },
{ "suit":"spades", "rank":"three" },
]
hasDupsObjects(cardHand);
// => false
var cardHand2 = [
{ "suit":"spades", "rank":"ten" },
{ "suit":"diamonds", "rank":"ace" },
{ "suit":"hearts", "rank":"ten" },
{ "suit":"clubs", "rank":"two" },
{ "suit":"spades", "rank":"ten" },
]
hasDupsObjects(cardHand2);
// => true
@AmiTavory कम से कम एक स्पष्ट अंतर है - वह प्रश्न primitives ('arr = [9, 9, 9, 111, 2, 3, 3, 3, 4, 4, 5, 7] की एक सरणी को देखता है;'), और यह वस्तुओं के गुणों के आधार पर deduping लग रहा है। अर्थपूर्ण, शायद, लेकिन दो सबसे ज्यादा वोट दिए गए उत्तरों इस मामले को बिल्कुल सही नहीं करते हैं। 'जितना अधिक आप जानते हैं' (मुझे एहसास है कि कुछ भी नहीं करेगा) – ruffin
@ruffin प्वाइंट लिया गया। टिप्पणी हटा दी गई। –