कहो कि मुझे यह मिल गया है
imageList = [100,200,300,400,500];
जो मुझे देता है
[0]100 [1]200
आदि।
क्या मूल्य के साथ सूचकांक को वापस करने के लिए जावास्क्रिप्ट में कोई रास्ता है?
यानी मैं 200 के लिए सूचकांक चाहता हूं , मुझे 1 वापस मिलता है ।
कहो कि मुझे यह मिल गया है
imageList = [100,200,300,400,500];
जो मुझे देता है
[0]100 [1]200
आदि।
क्या मूल्य के साथ सूचकांक को वापस करने के लिए जावास्क्रिप्ट में कोई रास्ता है?
यानी मैं 200 के लिए सूचकांक चाहता हूं , मुझे 1 वापस मिलता है ।
जवाबों:
आप उपयोग कर सकते हैं indexOf
:
var imageList = [100,200,300,400,500];
var index = imageList.indexOf(200); // 1
यदि आपको एरे में मान नहीं मिल रहा है तो आपको -1 मिलेगा।
के लिए सरणी वस्तुओं उपयोग map
के साथ indexOf
:
var imageList = [
{value: 100},
{value: 200},
{value: 300},
{value: 400},
{value: 500}
];
var index = imageList.map(function (img) { return img.value; }).indexOf(200);
console.log(index);
आधुनिक ब्राउज़रों में आप उपयोग कर सकते हैं findIndex
:
var imageList = [
{value: 100},
{value: 200},
{value: 300},
{value: 400},
{value: 500}
];
var index = imageList.findIndex(img => img.value === 200);
console.log(index);
ईएस 6 का इसका हिस्सा और क्रोम, एफएफ, सफारी और एज द्वारा समर्थित है
JQuery के फ़ंक्शन का उपयोग करें jQuery.inArray
jQuery.inArray( value, array [, fromIndex ] )
(or) $.inArray( value, array [, fromIndex ] )
यहां जावास्क्रिप्ट में जटिल सरणी में एक और तरीका है मूल्य सूचकांक खोजें। आशा है कि वास्तव में किसी की मदद करो। मान लें कि हमारे पास निम्नलिखित के रूप में एक जावास्क्रिप्ट सरणी है,
var studentsArray =
[
{
"rollnumber": 1,
"name": "dj",
"subject": "physics"
},
{
"rollnumber": 2,
"name": "tanmay",
"subject": "biology"
},
{
"rollnumber": 3,
"name": "amit",
"subject": "chemistry"
},
];
अब अगर हमें सरणी में किसी विशेष ऑब्जेक्ट का चयन करने की आवश्यकता है। आइए हम मान लें कि हम तन्मय नाम के साथ छात्र का सूचकांक ढूंढना चाहते हैं।
हम सरणी के माध्यम से पुनरावृत्ति करके और दिए गए कुंजी पर मूल्य की तुलना करके ऐसा कर सकते हैं।
function functiontofindIndexByKeyValue(arraytosearch, key, valuetosearch) {
for (var i = 0; i < arraytosearch.length; i++) {
if (arraytosearch[i][key] == valuetosearch) {
return i;
}
}
return null;
}
आप फ़ंक्शन का उपयोग नीचे दिए गए किसी विशेष तत्व के सूचकांक को खोजने के लिए कर सकते हैं,
var index = functiontofindIndexByKeyValue(studentsArray, "name", "tanmay");
alert(index);
Array.indexOf
इंटरनेट एक्सप्लोरर के कुछ संस्करणों में काम नहीं करता है - हालांकि इसे करने के कई वैकल्पिक तरीके हैं ... इस प्रश्न / उत्तर को देखें: यदि कोई सरणी जावास्क्रिप्ट में ऑब्जेक्ट शामिल करता है तो मैं कैसे जांच सकता हूं?
एक ES6
फ़ंक्शन का उपयोग करना संभव है Array.prototype.findIndex
।
findIndex()
विधि के सूचकांक रिटर्न सरणी में पहला तत्व है कि संतुष्ट परीक्षण समारोह प्रदान की है। अन्यथा -1 वापस कर दिया जाता है।
var fooArray = [5, 10, 15, 20, 25];
console.log(fooArray.findIndex(num=> { return num > 5; }));
// expected output: 1
ऑब्जेक्ट प्रॉपर्टी द्वारा एक इंडेक्स खोजें।
ऑब्जेक्ट प्रॉपर्टी द्वारा इंडेक्स खोजने के लिए:
yourArray.findIndex(obj => obj['propertyName'] === yourValue)
उदाहरण के लिए, ऐसी एक सरणी है:
let someArray = [
{ property: 'OutDate' },
{ property: 'BeginDate'},
{ property: 'CarNumber' },
{ property: 'FirstName'}
];
फिर, आवश्यक संपत्ति का एक सूचकांक खोजने के लिए कोड इस तरह दिखता है:
let carIndex = someArray.findIndex( filterCarObj=>
filterCarObj['property'] === 'CarNumber');
यहाँ इस पर मेरा विचार है, ऐसा लगता है कि अधिकांश लोग समाधान की जाँच नहीं करते हैं कि क्या आइटम मौजूद है और यदि यह मौजूद नहीं है तो यह यादृच्छिक मूल्यों को हटा देता है।
पहले यह जांचें कि क्या तत्व इंडेक्स की तलाश में मौजूद है । यदि यह मौजूद है, तो इसे स्पाइस विधि का उपयोग करके इसके सूचकांक से हटा दें
elementPosition = array.indexOf(value);
if(elementPosition != -1) {
array.splice(elementPosition, 1);
}
संदर्भ सरणी:
var array = [
{ ID: '100', },
{ ID: '200', },
{ ID: '300', },
{ ID: '400', },
{ ID: '500', }
];
उपयोग करना filter
और indexOf
:
var in_array = array.filter(function(item) {
return item.ID == '200' // look for the item where ID is equal to value
});
var index = array.indexOf(in_array[0]);
सरणी में प्रत्येक आइटम के माध्यम से लूपिंग indexOf
:
for (var i = 0; i < array.length; i++) {
var item= array[i];
if (item.ID == '200') {
var index = array.indexOf(item);
}
}
// Instead Of
var index = arr.indexOf(200)
// Use
var index = arr.includes(200);
कृपया ध्यान दें : फ़ंक्शन में सरणी पर एक सरल उदाहरण विधि शामिल है और यह आसानी से पता लगाने में मदद करता है कि कोई आइटम सरणी में है (अनुक्रमणिका के विपरीत NaN सहित)