【问题标题】:JS, doubling the element of an array and check if the next element of the current element that is doubling is equal to the previous elementJS,将数组的元素加倍并检查当前加倍的元素的下一个元素是否等于前一个元素
【发布时间】:2021-07-26 15:47:40
【问题描述】:

我需要帮助来解决这个练习: 给定一个数组并由以下组成 整数。写一个接受它的函数 作为该数组的参数,并通过将值加倍来修改它。如果之前的值和 当前值加倍的下一个值是 相等,将下一个元素的值更改为 0. 换句话说: 将数组的元素加倍并检查当前加倍元素的下一个元素(尚未加倍)是否等于前一个元素,如果是,则将下一个元素更改为 0。 给定的数组是: [0, 2, 5, 4, 1, 0, 3, 3, 6, 7];

const nums = [0, 2, 5, 4, 10, 3, 3, 6, 7];

const double = function (arr) {
  for (let i = 0; i < arr.length; i++) {
    arr[i] *= 2;
    console.log(arr[i]);
    if ((arr[i - 1] = arr[i + 1])) {
      arr[i + 1] = 0;
    }
  }
  return arr;
};
console.log(double(nums));

【问题讨论】:

  • 你也有结果吗?
  • 我认为结果应该是这样的: const nums = [0, 4, 10, 0, 0, 6, 6, 0, 14];

标签: javascript arrays function


【解决方案1】:

您可以存储前面的值并检查它是否等于实际元素,然后存储零或加倍的值。

const
    double = array => {
        let preceding;
        for (let i = 0; i < array.length; i++) {
            const value = array[i] * 2;
            array[i] = preceding === array[i] ? 0 : value;
            preceding = value;
        }
        return array;
    };

console.log(...double([0, 2, 5, 4, 1, 0, 3, 3, 6, 7]));

【讨论】:

  • 我编辑了这个问题,看看你是否更清楚?
猜你喜欢
  • 2017-03-15
  • 2011-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-04
  • 1970-01-01
  • 2011-08-30
相关资源
最近更新 更多