在值之前和之后用零动态填充JavaScript数组的算法

我们得到一个months数组,该元素小于12,其中每个元素将在1到12之间(包括两个端点)。我们的工作是采用此数组并创建一个包含12个元素的完整月份数组,如果该元素存在于原始数组中,则使用该元素,否则将在该位置使用。

例如-

Intput → [5, 7, 9]
Output → [0, 0, 0, 0, 5, 0, 7, 0, 9, 10, 0, 0]

现在,让我们编写代码-

示例

const months = [6, 7, 10, 12];
const completeMonths = (arr) => {
   const completed = [];
   for(let i = 1; i <= 12; i++){
      if(arr.includes(i)){
         completed.push(i);
      }else{
         completed.push(0);
      }
   };
   return completed;
};
console.log(completeMonths(months));

我们从1迭代到12,一直检查原始数组是否包含当前元素,如果是,则将该元素推送到新数组,否则将0推送到新数组。

输出结果

控制台中上述代码的输出为-

[
   0, 0, 0, 0, 0,
   6, 7, 0, 0, 10,
   0, 12
]