用 JavaScript 解析陣列成相等間隔


假設,我們需要寫一個函式,稱為 parseEqualInterval(),它將嚴格包含兩個元素的數字陣列作為第一個引數和數字 n 作為第二個引數,並且在原始陣列的兩個實際元素之間插入 n-1 個等距條目,使之劃分為 n 個相等的間隔。

例如 −

// if the input array is
const arr = [12, 48];
// and the interval is
4
//then the output array should be:
const output = [12, 21, 30, 39, 48];

透過這種方式,該陣列被分成 4 個相等的間隔。因此,讓我們編寫此函式的程式碼 −

示例

const arr = [12, 48];
const parseEqualInterval = (arr, interval) => {
   const [first, second] = arr;
   const size = (second-first) / interval;
   for(let i = 1, el = first+size; i < interval; i++, el += size){
      arr.splice(i, 0, Math.round((el + Number.EPSILON) * 100) / 100);
   };
};
parseEqualInterval(arr, 4);
console.log(arr);
parseEqualInterval(arr, 6);
console.log(arr);
parseEqualInterval(arr, 10);
console.log(arr);
parseEqualInterval(arr, 15);
console.log(arr);

輸出

控制檯中的輸出將如下所示 −

[ 12, 21, 30, 39, 48 ]
[
   12, 13.5, 15, 16.5,
   18, 19.5, 21, 30,
   39, 48
]
[
   12, 12.15, 12.3, 12.45,
   12.6, 12.75, 12.9, 13.05,
   13.2, 13.35, 13.5, 15,
   16.5, 18, 19.5, 21,
   30, 39, 48
]
[
   12, 12.01, 12.02, 12.03, 12.04,
   12.05, 12.06, 12.07, 12.08, 12.09,
   12.1, 12.11, 12.12, 12.13, 12.14,
   12.15, 12.3, 12.45, 12.6, 12.75,
   12.9, 13.05, 13.2, 13.35, 13.5,
   15, 16.5, 18, 19.5, 21,
   30, 39, 48
]

更新於: 26-Aug-2020

149 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

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