2017-04-26 6 views
1

配列のオブジェクトをマップする必要があります。いったんマップされると、divの最初の行のコンテンツを表示したいと思います。私はdbから配列のオブジェクトを取得しており、オブジェクト内の4つの配列のうち2つしかマッピングしていません。配列のオブジェクトをJavascriptでマップする方法

私ができるようにしたいのは、マップされた配列を使用し、そのマップされた配列に対応するすべてのデータを取得し、すべてをdivに表示することです。ユーザーは上向き矢印または下向き矢印をクリックして表示されているものを変更することができますが、オブジェクト内の次のまたは以前のデータを表示することができません。私は正しく機能していないと思うので、正しく機能していると思う。 DBから来る

オリジナルオブジェクト:

配列マッピング
object: { 
    PageNum: [array of items], 
    RowNum: [array of items], 
    CustomerName: [array of items], 
    FacilityName: [array of items] 
} 

var delDS = [{ 
    pageNum : delPageData["PageNum"], 
    rowNum : delPageData["RowNum"] 
}]; 

var delMappedArray = delDS.map(function(obj) { 
    var rObj = {}; 
    rObj[obj.pageNum] = obj.rowNum; 
    return rObj; 
}); 

このような何かを返します。

[object] 
    0: Object 
    2,2,4,4,6: Array(5) 
     0: "24" 
     1: "26" 
     2: "2" 
     3: "4" 
     4: "10" 
    length: 5 
+0

_これはthis_のようなものを返します。それはあなたが望むものですか?か否か?何をしたかったのですか?実際にあなたが抱えている問題は何ですか? –

+1

これはあまり明確ではありません。あなたはそれらのプロパティ '[item of array]'にどのような*アイテム*を持っていますか? – DontVoteMeDown

+0

マップされたデータを使用し、正しいマッピングされたデータ項目に属する正しい顧客名と施設名を取得したいと考えています。そうすれば、正しいrowNum、pageNum、customerName、およびfacilityNameを表示できます。たとえば、今はrowNum 3を持つことができますが、rowNum 8のcustomerNameを持つことがあります。 – JBaldwin

答えて

1

はこのような何かを試してみてください:

//map the data 
    delPD = delPageData.PageNum.map((x,i) => ({ 
      pageNum: x, 
      rowNum: delPageData["RowNum"][i], 
      cName: delPageData["CustomerName"][i], 
      fName: delPageData["FacilityName"][i], 
    })); 
    //sort the data 
    delPD.sort(function(a,b) { 
     if(a.pageNum == b.pageNum) { 
      return (a.rowNum - b.rowNum); 
     } else { 
      return (a.pageNum - b.pageNum); 
     } 
    }); 
    //give the data an index number for ordering purposes later 
    for(var i=0; i<delPD.length; i++) { 
     delPD[i].index = i; 
    } 

これは最初にオブジェクトの配列をマッピングし、新しい配列を作成します。次に、新しい配列をページ番号で並べ替え、並べ替えます。次に、各オブジェクトにインデックス番号を追加します。必要に応じてこの方法でコードの後半で使用できます。

希望すると便利です。

+1

まさに私が探していたもの。それは完全に動作します! – JBaldwin

関連する問題