2017-05-18 8 views
-1
var items = [ 
      { "id": 1, "label": "Item1" }, 
      { "id": 2, "label": "Item2" }, 
      { "id": 3, "label": "Item3" } 
    ]; 

私は 'items'というオブジェクトの配列を持っています。私はitemselected = 3をデータベースから取得します。整数をオブジェクトの配列に変換します。

この3を次の形式に変換する必要があります。私は、データベースから値2を持っている場合

0:Object 
    id:3 
    label:"Item3" 

同様に、私は誰も私がそれを解決取得する方法のヒントを聞かせてくださいすることができ

0:Object 
    id:2 
    label:"Item2" 

に変換する必要があります。私は答えを得るためにここにいません。これらの質問は私のためにはかなりトリッキーです、そして、私はいつも論理権を得ることに失敗します。このコンバージョンを習得する方法に関するアドバイスは大きな助けになります。ありがとう。あなたがunderscore.jsをタグ付けするので

+0

以下のように使用jqueryの$の.MAP機能は、このJSONですか?もしそうなら、最初にJSON.parseを使用することはできません。 –

+0

私はそれを得ることはできません、これは 'items [value - 1]'ほど簡単ではないでしょうか? – adeneo

答えて

2

、これは非常に簡単なはず:

let selectedObject = items.find(el => el.id === itemselected); 

ECMA5では、あなたがfilterを使用することができます。ECMA6を使用して

var selectedObject = _.findWhere(items, {id: itemselected}); 

は、あなたがアレイ上の同じ使用.find方法を達成することができます配列のメソッド。どの要素が見つかっていない場合、フィルタリターンが未定義であることに注意してください:

var selectedObject = items.filter(function(el) { return el.id === itemselected}); 
-1

は、あなたの質問のタイトルに基づいて、この

var obj = {} ; 
items = [ 
     { "id": 1, "label": "Item1" }, 
     { "id": 2, "label": "Item2" }, 
     { "id": 3, "label": "Item3" } 
]; 
items.map(function(n) { obj[n.id] = n }); 
0

をお試しください:«オブジェクトの配列への変換整数»。 JavaScriptArray#filterを使用できます。

filter()方法を提供する機能によって実現テストに合格 すべての要素を持つ新しい配列を作成します。

このような何か:

var items = [{ 
 
    "id": 1, 
 
    "label": "Item1" 
 
    }, 
 
    { 
 
    "id": 2, 
 
    "label": "Item2" 
 
    }, 
 
    { 
 
    "id": 3, 
 
    "label": "Item3" 
 
    } 
 
]; 
 
var value = 2; 
 
var result = items.filter(function(x) { 
 
    return x.id === value; 
 
}); 
 
console.log(result); // Prints an Array of object.

Array of object

0

$.map(item, function(n, i) { if(n["id"] == 3) return (n);}); 
関連する問題