繁体   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