मुझे ऑब्जेक्ट्स वाले जावास्क्रिप्ट सरणी को खोजने की आवश्यकता होती है। मैं उस सरणी में किसी ऑब्जेक्ट को खोजना चाहता हूं जिसमें एक संपत्ति मैच है। उदाहरण के लिए, व्यक्ति की आईडी/कुंजी === "एबीसी 123"क्या jQuery के प्रत्येक का उपयोग करने से जावास्क्रिप्ट ऐरे खोजने का कोई बेहतर तरीका है?
यह $ .each विधि का उपयोग करके jQuery का उपयोग करके बहुत आसानी से किया जा सकता है, जो मैंने तय किया है। आप jsFiddle में उदाहरण यहां देख सकते हैं। http://jsfiddle.net/johnpapa/EJAFG/
मुझे आश्चर्य है कि किसी और को ऐसा करने के लिए तेज़ और/या बेहतर तरीका मिला है?
var Person = function(code, name) {
this.code = code;
this.name = name;
};
var people = [
new Person("ABC123", "Tooth Fairy"),
new Person("DEF456", "Santa Claus"),
new Person("PIR000", "Jack Sparrow"),
new Person("XYZ987", "Easter Bunny")
];
var utils = {};
// Could create a utility function to do this
utils.inArray = function(searchFor, property) {
var retVal = -1;
$.each(this, function(index, item) {
if (item.hasOwnProperty(property)) {
if (item[property].toLowerCase() === searchFor.toLowerCase()) {
retVal = index;
return false;
}
}
});
return retVal;
};
// or we could create a function on the Array prototype indirectly
Array.prototype.inArray = utils.inArray;
// let's use the prototype for now
var i = people.inArray("PIR000", "code");
$('#output').text(people[i].name);
बहुत चलो इस एक के लिए इसी तरह के सवाल के होते हैं, लेकिन मैं अभी तक पुनरावृत्ति के अलावा किसी अन्य समाधान के साथ एक को देखने के लिए (जैसे मैं यहाँ किया था) है।
तो सवाल यह है कि ... क्या कोई बेहतर तरीका है?
एक समान प्रश्न है [यहां] [1]। [1]: http://stackoverflow.com/questions/1144423/jquery-selectors-for-plain-javascript-objects-instead-of-dom-elements –
http://stackoverflow.com देखें/प्रश्न/143847/सर्वोत्तम-तरीके-से-खोजने-एक-आइटम-इन-ए-जावास्क्रिप्ट-सरणी और http://stackoverflow.com/questions/237104/array-containsobj-in-javascript – j08691
@ j08691 उन दोनों जांच कर रहे हैं कि कोई सटीक ऑब्जेक्ट मैच मौजूद है या नहीं। उन लोगों के लिए, $ .inArray ठीक काम करता है। मैं कुंजी द्वारा एक खोज की तलाश में हूँ। –