首页 > 解决方案 > 增加数组中元素的值

问题描述

说我有一个这样的数组......

let myArr = [0,0,2,0,0];

我想创建一种涟漪效应,使得数组的结果是[0,1,2,1,0]

标签: javascriptarrays

解决方案


这会给你你期望的结果:

let myArr = [0, 0, 2, 0, 0];


createRippleArray = (myArr) => {
  if (myArr.length % 2 === 0) {
    console.error("createRippleArray: Array length needs to be odd number>1");
    return [];
  }

  let midIndex = ~~(myArr.length / 2);
  let mid = myArr[midIndex];
  return myArr.map((e, i) => {
    let res;
    if (i < midIndex) {
      return ~~(mid / Math.abs(midIndex - i + 1));
    } else if (i === midIndex) {
      return mid;
    } else if (i > midIndex) {
      return ~~(mid / Math.abs(midIndex - i - 1));
    }
  });
}

console.log(createRippleArray(myArr));

希望这可以帮助!


推荐阅读