तो मुझे पता है कि एक कुंजी-मान सरणी में एक निश्चित विशेषता की अनुक्रमणिका खोजने के लिए, आप यह कर सकते हैं:

var index = peoples.findIndex(function(person) {
  return person.attr1 == "john"
}

हालांकि, अगर मैं "जॉन" को एक चर में बदलना चाहता हूं तो क्या होगा? उदाहरण के लिए, targetID?

मेरा अंतिम लक्ष्य ऐसा कुछ प्राप्त करना है:

function returnIndex (targetID) {
    var index = array.findIndex(function(x) {
        return x.id == targetID;
    });
}

सच कहूं तो मुझे यकीन नहीं है कि यह काम करेगा। और अगर ऐसा होता है, तो मुझे नहीं पता कि फ़ंक्शन को कॉल कैसे करें। अगर यह काम कर सकता है तो मैं इसे कैसे कहूंगा?

मैं वास्तव में इस तरह के जेएस प्रारूप से परिचित नहीं हूं क्योंकि मुझे सीखने में केवल कुछ हफ्ते हैं, क्षमा करें यदि ये बहुत ही बुनियादी प्रश्न हैं।

0
Jack Goodman 26 मार्च 2018, 08:22

4 जवाब

सबसे बढ़िया उत्तर

चर का उपयोग सीधे काम करेगा:

var targetID = "john";
var index = peoples.findIndex(function(person) {
  return person.attr1 == targetID;
}

अपने काम के उस कार्य को करने के लिए, आपको इसे सरणी भी पास करना होगा, और इसे अनुक्रमणिका वापस करना होगा:

function returnIndex (array, targetID) { // added array,
    return array.findIndex(function(x) { // replaced `var index =` with `return`
        return x.id == targetID;
    });
}
// And use it like:
var index = returnIndex(peoples, "john");
0
acdcjunior 26 मार्च 2018, 05:25

यदि वेरिएबल array returnIndex फ़ंक्शन के दायरे में नहीं है, तो आपको इसे एक पैरामीटर के रूप में पास करना होगा। यहाँ एक उदाहरण है:

function returnIndex(array, targetID) {
    return array.findIndex(function(x) {
        return x.id == targetID;
    });
}

// And you call the function like this:

var index = returnIndex(peoples, targetId);
-1
Titus 26 मार्च 2018, 05:40

आप इसे फ़ंक्शन में पास array और targetID की तरह कर सकते हैं और आपको फ़ंक्शन से index वापस करने की भी आवश्यकता है।

function returnIndex (array, targetID) {
    // here using es6 arrow function.       
    return array.findIndex(x => x.id === targetID)
}

// Calling the function
// array the array of objects, targetID the id of the target object
const index = returnIndex(array, targetID); 
0
Farhan Tahir 26 मार्च 2018, 05:27

आपका उदाहरण return index; कथन के एक छोटे से जोड़ के साथ काम करता है। देखो:

var people = [
  { id: 0, name: "Matt" },
  { id: 1, name: "Tom" },
  { id: 2, name: "John" },
  { id: 3, name: "David" }
];


function returnIndex (targetID) {
    var index = people.findIndex(function(x) {
        return x.id == targetID;
    });
    return index;
}

console.log("In: 0, Out:", returnIndex(0));
console.log("In: 1, Out:", returnIndex(1));
console.log("In: 2, Out:", returnIndex(2));
console.log("In: 3, Out:", returnIndex(3));
1
wscourge 26 मार्च 2018, 05:27