簡體   English   中英

嵌套數組對象名稱

[英]Nested Array Object Names

我有以下lodash函數用於將數據分組並返回:

[
    {
        "tranid": "100",
        "trandate": "2019-08-20T07:00:00.000Z",
        "account": "1",
        "currency": "1",
        "departement": "1",
        "location": "1",
        "list": [ "1", "2" ]
    },
    {
        "tranid": "200",
        "trandate": "2019-08-20T07:00:00.000Z",
        "account": "1",
        "currency": "1",
        "departement": "1",
        "location": "1",
        "list": [ "3", "1260" ]
    }
]

但是我真的很想讓它返回:

[
    {
        "tranid": "100",
        "trandate": "8/20/2019",
        "account": "1",
        "currency": "1",
        "departement": "1",
        "location": "1",
        "list": [
            { "docnumber": "1" },
            { "docnumber": "2" }
        ]
    },
    {
        "tranid": "200",
        "trandate": "8/20/2019",
        "account": "1",
        "currency": "1",
        "departement": "1",
        "location": "1",
        "list": [
            { "docnumber": "3" },
            { "docnumber": "1260" }
        ]
    }
]

具體來說,我堅持的部分是如何制作:

"list":["1","2"]

變成

"list":[{"docnumber":"1"},{"docnumber":"2"}].

我知道list: _.map(v, 'docnumber') group函數中的list: _.map(v, 'docnumber')需要更改,但無法完全確定。 任何幫助都會很棒,謝謝。

function group(data) {
  var group = lo(data).chain(data).groupBy("tranid").map(function(v,i) {
    return {
      tranid: i,
      processed: _.get(_.find(v, 'processed'), 'processed'),
      trandate: _.get(_.find(v, 'trandate'), 'trandate'),
      account: _.get(_.find(v, 'account'), 'account'),
      currency: _.get(_.find(v, 'currency'), 'currency'),
      departement: _.get(_.find(v, 'departement'), 'departement'),
      location: _.get(_.find(v, 'location'), 'location'),
      list: _.map(v, 'docnumber')
    }
  }).value();

  return group;
}

像這樣傳遞函數:

list: _.map(v, docnumber => ({ docnumber }));

這利用了ES6對象符號的簡寫形式。 在普通JavaScript中,它將是:

list: v.map(docnumber => ({ docnumber }));

在ES5中,它將是:

list: v.map(function(n) {
  return {
    docnumber: n
  };
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM