2017-05-31 8 views
0

ここでは、角型2をTypescriptで使用しています。Javascript Object arrayで検索するには?

私はこのようなオブジェクトの配列を持っています。

lists: any [] = [ 
{title: 'Title1', content: 'Content1', id: 10}, 
{title: 'Title2', content: 'Content2', id: 13}, 
{title: 'Title3', content: 'Content3', id: 14}, 
{title: 'Title4', content: 'Content4', id: 16}, 
]; 

私がやろうとしているすべては、私は、配列内の特定のIDを見つけた後返さ真または偽の値を必要とするということです。

以下の文字列の例が見つかりました。

myFunction() { 
var fruits = ["Banana", "Orange", "Apple", "Mango"]; 
var a = fruits.indexOf("Apple"); 
var d = a >= 0 ? true : false 
console.log(d); 
} 

私の状況でこれを適用すると、機能しませんでした。

+0

ご使用のアレイ内のオブジェクトを検索するロジックを教えてください。 –

答えて

1

検証が少なくとも一つの場合も同様である場合は、いくつかを使用することができますArray#find方法

var a= [ 
 
{title: 'Title1', content: 'Content1', id: 10}, 
 
{title: 'Title2', content: 'Content2', id: 13}, 
 
{title: 'Title3', content: 'Content3', id: 14}, 
 
{title: 'Title4', content: 'Content4', id: 16}, 
 
]; 
 

 
function check(id){ 
 
return a.find(a=> a.id == id) ? true : false; 
 
} 
 

 
console.log(check(10)) 
 
console.log(check(105))

1

あなたはsomeを使用することができます。

let containsId => id => item => item.id === id; 
let isIdInList = lists.some(containsId(10)); 
0

最も簡単な解決策は、リストの配列を反復処理し、object.idが要求されたIDに等しいかどうかを確認することです。 particularIdは、そうでない場合は、リストfalseで見つかった場合

checkID(id: number){ 
    for(var i = 0; i < lists.length; i++) { 
    if(lists[i].id == id){ 
    return true; 
    } 
    else{ 
     return false; 
    } 
    } 
} 
0

次のコードは、trueを返します。

const foundObjects = lists.filter(obj => obj.id == particularId) 
return !foundObjects || foundObjects.length === 0 
0

で試してみてください、それはtrueを返します。 このようなことを試してみてください:

let myArray = [ 
{title: 'Title1', content: 'Content1', id: 10}, 
{title: 'Title2', content: 'Content2', id: 13}, 
{title: 'Title3', content: 'Content3', id: 14}, 
{title: 'Title4', content: 'Content4', id: 16}, 
] 

myArray.some(function(el){ return (el.id === 10) ? true:false }) 
関連する問題