2014-06-17 10 views
11

में मान पास करने वाले नियंत्रक में किसी सरणी आइटम की इंडेक्स स्थिति कैसे प्राप्त करें मेरे पास मानों की सूची के साथ एक सरणी है।एंजुलर

[Object { id="5", country="UAE"}, Object { id="4", country="India"}] 

मैं आईडी में मौजूद मान के आधार पर सरणी आइटम का सूचकांक प्राप्त करना चाहता हूं। मैं कोणीय जेएस नियंत्रक में id = 4 के मान के साथ किसी सरणी आइटम की अनुक्रमणिका स्थिति कैसे प्राप्त कर सकता हूं?

उत्तर

10

यह कोणीय विशिष्ट समस्या नहीं है लेकिन सामान्य जावास्क्रिप्ट है। बस पाश और वापसी सूचकांक

var list = [{ id="5", country="UAE"}, { id="4", country="India"}]; 

for (var i = 0; i < list.length ; i++) { 
     if (list[i][id] === 4) { 
      return i; 
     } 
} 

आप तो यह जो मूल्य और संपत्ति नाम

Array.prototype.getIndexOfObject = function(prop, value){ 
    for (var i = 0; i < this.length ; i++) { 
      if (this[i][prop] === value) { 
       return i; 
      } 
    } 
} 
20

AngularJS रास्ता ($ फिल्टर का उपयोग कर) को स्वीकार करता है सरणी पर समारोह बनाकर यह सामान्य बना सकते हैं होगा इस

app.controller('MainCtrl', ['$scope', '$filter', function($scope, $filter) { 

    //array 
    var items = [{ id: "5", country: "UAE" }, { id: "4", country: "India" }]; 

    //search value 
    var id2Search = "4"; 

    //filter the array 
    var foundItem = $filter('filter')(items, { id: id2Search }, true)[0]; 

    //get the index 
    var index = items.indexOf(foundItem); 
}]); 
3

आप अपने सरणी में प्रत्येक वस्तु से अधिक पुनरावृति और किसी भी वांछित संपत्ति का निरीक्षण करने के मानचित्र() फ़ंक्शन का उपयोग कर सकते की तरह कुछ। उदाहरण के लिए आप का उपयोग

var index = $scope.items.map(function (item) { 
      return item.id; 
     }).indexOf(2); 

आईडी संपत्ति में 2 का मूल्य युक्त वस्तु के सूचकांक रिटर्न सरणी में दूसरी वस्तु के सूचकांक प्राप्त करने के लिए वस्तुओं

$scope.items = 
[ 
{'id':'1','name':'item1'}, 
{'id':'2','name':'item2'} 
]; 

की एक सरणी है, तो ।

संबंधित मुद्दे