2016-10-27 6 views
1

は、私は、次があります。チェック - AngularJS

$scope.Items = [{"ItemId": 1, "ItemName":"Test1"}, {"ItemId": 2, "ItemName":"Test2"}, {"ItemId": 3, "ItemName":"Test3"}]; 

私はアイテムID 1とのItemId 2はそれのための最善のアプローチどのようになるか、この内に存在するかどうかを確認したい場合は? indexOfプロパティは機能するはずですが、オブジェクトの特定の属性値が配列内に存在するかどうかを確認するためにどのように使用できますか?

+0

「Array.find」を試す:https://developer.mozilla.org/ja/docs/Web/JavaScr ipt/Reference/Global_Objects/Array/find – arnabkaycee

+0

find()関数内で "ItemId"の値をどのように追加することができますか? – 221b

+0

下記の私の答えを参照してください。 – arnabkaycee

答えて

3

あなたも

$scope.firstitem=false; 
$scope.seconditem=false; 
angular.forEach($scope.Items, function (value, key) { 
      if (value.ItemId== 1) { $scope.firstitem=true; } 
      if (value.ItemId== 2) { $scope.seconditem=true; } 
     }); 
2

あなたはあなたがしたいプロパティで見つけるために、このような関数を見つける使用することができlodash_.some()オペレータが

var _ = require('lodash'); 
var Items = [{"ItemId": 1, "ItemName":"Test1"}, {"ItemId": 2, "ItemName":"Test2"}, {"ItemId": 3, "ItemName":"Test3"}]; 

var hasItem1 = _.some(Items, ["ItemId", 1]); 
var hasItem2 = _.some(Items, ["ItemId", 2]); 

console.log ("hasItem1 = "+hasItem1); 
console.log ("hasItem2 = "+hasItem2); 
2

のように使用することができます使用することができます。

var inventory = [ 
    {name: 'apples', quantity: 2}, 
    {name: 'bananas', quantity: 0}, 
    {name: 'cherries', quantity: 5} 
]; 

function findCherries(fruit) { 
    return fruit.name === 'cherries'; 
} 

console.log(inventory.find(findCherries)); 
// { name: 'cherries', quantity: 5 } 

あなたがフィルタリングしたい場合は、このようfilter機能を使用することができます(複数の値を見つけ、すなわち。):

var arr = [ 
    { id: 15 }, 
    { id: -1 }, 
    { id: 0 }, 
    { id: 3 }, 
    { id: 12.2 }, 
    { }, 
    { id: null }, 
    { id: NaN }, 
    { id: 'undefined' } 
]; 

var invalidEntries = 0; 

function filterByID(obj) { 
    if (obj.id !== undefined && typeof(obj.id) === 'number' && !isNaN(obj.id)) { 
    return true; 
    } else { 
    invalidEntries++; 
    return false; 
    } 
} 

var arrByID = arr.filter(filterByID); 

console.log('Filtered Array\n', arrByID); 
// Filtered Array 
// [{ id: 15 }, { id: -1 }, { id: 0 }, { id: 3 }, { id: 12.2 }] 

console.log('Number of Invalid Entries = ', invalidEntries); 
// Number of Invalid Entries = 4 

参考:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

2

あなたがlodashの_.findIndexを使用することができます()演算子

var _ = require('lodash'); 
var Items = [{"ItemId": 1, "ItemName":"Test1"}, {"ItemId": 2, "ItemName":"Test2"}, {"ItemId": 3, "ItemName":"Test3"}]; 

var hasItem1 = false; 
var hasItem2 = false; 
if(_.findIndex(Items, {ItemId : 1}) != -1) { hasItem1 = true; } 
if(_.findIndex(Items, {ItemId : 2}) != -1) { hasItem2 = true; } 

console.log ("hasItem1 = "+hasItem1); 
console.log ("hasItem2 = "+hasItem2); 
関連する問題