簡體   English   中英

如何使用Angular.js / Javascript檢查鍵是否存在於數組中

[英]How to check the key is present or not in an array using Angular.js/Javascript

我需要一個幫助。我有一個包含json數據的數組。我需要使用Javascript / Angular.js檢查該數組中是否存在給定鍵,我在下面解釋一個數組。

var arr = [{
    'category': 1,
    'subcategory': 2,
    'check': true
}, {
    'category': 1,
    'subcategory': 2
}];

您可以在上面檢查1索引,沒有check密鑰。我需要檢查該密鑰,以便我可以獲取check:truecheck根本不存在。請幫助我。

您可以使用some()hasOwnProperty()

some()對數組中存在的每個元素執行一次回調函數,直到找到一個回調返回真值(轉換為布爾值的值)的值為止。 如果找到了這樣的元素,some()將立即返回true。 否則,some()返回false。 僅對具有指定值的數組索引調用回調; 對於已刪除或從未分配值的索引,不會調用它。 從這里拍攝

 var arr = [{ 'category': 1, 'subcategory': 2, 'check': true }, { 'category': 1, 'subcategory': 2 }]; var key='check'; var res = arr.some(function(v) { return v.hasOwnProperty(key); }); console.log(res); 


對於較舊的瀏覽器, 請檢查某些方法的polyfill選項


如果要獲取值或具有屬性的對象,請使用find()代替

 var arr = [{ 'category': 1, 'subcategory': 2, 'check': true }, { 'category': 1, 'subcategory': 2 }]; var key = 'check'; var res = arr.find(function(v) { return v.hasOwnProperty(key); }); console.log(res); 


對於較舊的瀏覽器,請檢查find方法的polyfill選項


或使用簡單的for循環

 var arr = [{ 'category': 1, 'subcategory': 2, 'check': true }, { 'category': 1, 'subcategory': 2 }]; var chk = 0; for (var i = 0; i < arr.length; i++) { if (arr[i].check == true) { chk = 1; break; } } console.log(chk); 

正如@PranavCBalan所說,您可以使用hasOwnProperty()方法。

我建議您看看Lodash 您可以找到許多實用程序來解決代碼中可能需要的典型檢查或功能。

嘗試這個

 angular.forEach(arr,function(value,key){
      if(value.check == true)
        value.check = 1;
       else if(value.check == undefined)
             value.check = 0;
   })

 var app = angular .module('MyApp', [ ]) .controller('Main', ['$scope', function ($scope) { $scope.arr = [ { 'category': 1, 'subcategory': 2, 'check': true }, { 'category': 1, 'subcategory': 2 } ]; angular.forEach($scope.arr,function(value,key){ if(value.check == true) value.check = 1; else if(value.check == undefined) value.check = 0; }) }]) 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div class="main-content" ng-app="MyApp" ng-controller="Main"> <pre>{{arr|json}}</pre> </div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM