根據另一個屬性值對 JavaScript 物件標題陣列進行對映,形成新的陣列


假設我們有一個如下所示的物件陣列 −

const arr = [{
   country: "cananda",
   count: 2
}, {
      country: "jamaica",
      count: 2
}, {
      country: "russia",
      count: 1
}, {
      country: "india",
      count: 3
}, {
      country: "spain",
      count: 2
}, {
      country: "portugal",
      count: 1
}, {
      country: "italy",
      count: 1
}];

我們需要編寫一個函式,該函式接受此陣列,對其進行對映並返回一個字串陣列,其中特定物件的國家/地區名稱重複“count”次。

因此,此物件函式的輸出應為 −

['canada', 'canada', 'jamaica', 'jamaica', 'russia', 'india', 'india', 'india','spain', 'spain','portugal', 'italy']

讓我們編寫此函式的程式碼。我們將在此處使用 Array.prototype.reduce() 方法 −

示例

const arr = [{
   country: "canada",
   count: 2
}, {
      country: "jamaica",
      count: 2
}, {
      country: "russia",
      count: 1
}, {
      country: "india",
      count: 3
}, {
      country: "spain",
      count: 2
}, {
      country: "portugal",
      count: 1
}, {
      country: "italy",
      count: 1
}];
const repeatCount = (arr) => {
   return arr.reduce((acc, val) => {
      let { count, country } = val;
      while(count--){
         acc.push(country);
      }
      return acc;
   }, []);
};
console.log(repeatCount(arr));

輸出

控制檯中的輸出將是 −

[
   'canada', 'canada',
   'jamaica', 'jamaica',
   'russia', 'india',
   'india', 'india',
   'spain', 'spain',
   'portugal', 'italy'
]

更新日期:2020-08-25

179 次瀏覽

開啟您的 職業生涯

完成課程以獲得認證

開始學習
廣告
© . All rights reserved.