簡體   English   中英

javascript - 在每次地圖迭代的開頭添加對象

[英]javascript - add object at the beginning on each map iteration

所以,讓我們假設我有這個:

var officers = [
  { id: 20, name: 'Captain', lastName: 'Piett' },
  { id: 24, name: 'General', lastName: 'Veers'  },
  { id: 56, name: 'Admiral', lastName: 'Ozzel'  },
  { id: 88, name: 'Commander', lastName: 'Jerjerrod'  }
];

如果我這樣做: var officersIds = officers.map(x => [x.name, x.lastName]); 結果officersIds是會是這樣的:

[ "Captain", "Piett" ], [ "General", "Veers" ], [ "Admiral", "Ozzel" ], [ "Commander", "Jerjerrod" ]

對?

所以,我需要做的是在每次地圖迭代上放置一個對象,因此輸出現在是這樣的,例如:

[["x", "y"], [ "Captain", "Piett" ]], 
[["x", "y"], [ "General", "Veers" ]],  
[["x", "y"], [ "Admiral", "Ozzel" ]], 
[["x", "y"], [ "Commander", "Jerjerrod" ]]

為什么我需要這個? 最好不要問;) 但這是一個復雜的問題,如果你幫我解決這個簡單的問題,我可以將你的解決方案轉移到我的復雜問題上。

重要提示:有沒有辦法在一行中做到這一點?

var officers = [
  { id: 20, name: 'Captain', lastName: 'Piett' },
  { id: 24, name: 'General', lastName: 'Veers'  },
  { id: 56, name: 'Admiral', lastName: 'Ozzel'  },
  { id: 88, name: 'Commander', lastName: 'Jerjerrod' },
];

officers.unshift({ name: x, lastName: y });

var officersIds = officers.map(x => [x.name, x.lastName]);

或者

var officers = [
      { id: 20, name: 'Captain', lastName: 'Piett' },
      { id: 24, name: 'General', lastName: 'Veers'  },
      { id: 56, name: 'Admiral', lastName: 'Ozzel'  },
      { id: 88, name: 'Commander', lastName: 'Jerjerrod' },
    ];


    var officersIds = officers.map(x => [x.name, x.lastName]);

    officersIds.unshift(["x", "y" ]);

用地圖過officers

 var officers = [ { id: 20, name: 'Captain', lastName: 'Piett' }, { id: 24, name: 'General', lastName: 'Veers' }, { id: 56, name: 'Admiral', lastName: 'Ozzel' }, { id: 88, name: 'Commander', lastName: 'Jerjerrod' } ]; var officersIds = officers.map(x => [["x", "y"], [x.name, x.lastName]]); console.log(officersIds);

如果您只想將['x', 'y']到數組的開頭,您可以使用擴展運算符使其成為單行:

var officersIds = [['x', 'y'], ...officers.map(x => [x.name, x.lastName])];

請參閱下面的概念驗證:

 var officers = [ { id: 20, name: 'Captain', lastName: 'Piett' }, { id: 24, name: 'General', lastName: 'Veers' }, { id: 56, name: 'Admiral', lastName: 'Ozzel' }, { id: 88, name: 'Commander', lastName: 'Jerjerrod' } ]; var officersIds = [['x', 'y'], ...officers.map(x => [x.name, x.lastName])]; console.log(officersIds);


但是,如果您想將['x', 'y']到數組中的每個項目,那么您應該這樣做:

var officersIds = officers.map(x => [['x', 'y'], [x.name, x.lastName]]);

 var officers = [ { id: 20, name: 'Captain', lastName: 'Piett' }, { id: 24, name: 'General', lastName: 'Veers' }, { id: 56, name: 'Admiral', lastName: 'Ozzel' }, { id: 88, name: 'Commander', lastName: 'Jerjerrod' } ]; var officersIds = officers.map(x => [['x', 'y'], [x.name, x.lastName]]); console.log(officersIds);

您可以將所需的部分添加到映射函數中。

 var officers = [{ id: 20, name: 'Captain', lastName: 'Piett' }, { id: 24, name: 'General', lastName: 'Veers' }, { id: 56, name: 'Admiral', lastName: 'Ozzel' }, { id: 88, name: 'Commander', lastName: 'Jerjerrod' }], officersIds = officers.map(x => [["x", "y"], [x.name, x.lastName]]); console.log(officersIds);

暫無
暫無

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

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