[英]How to get parent object value by using child array key value using 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:true
或check
根本不存在。請幫助我。
您可以使用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.