数组:检查元素和以下元素

时间:2017-07-10 01:13:25

标签: javascript arrays loops element

当我得到一个数组a并且我想要修改一个元素和之后的元素?所以总是有成对的元素(i和i + 1)。 我想这样做3次。这些对看起来像这样:

a[0] and a[1], a[1] and a[2], a[2] and a[3]

我该如何解决这个问题? 感谢

3 个答案:

答案 0 :(得分:1)

您可以使用for循环

for(let i = 0; i < a.length - 1; i++) {
  a[i] = "modify";
  a[i + 1] = "modify";
}

答案 1 :(得分:1)

如果处理3次,即在一次迭代中处理4个元素是强制性的,那么你应该检查数组是否至少有4个元素开始。

for(int i = 0; i < a.length - 3; i++) {
      a[i] = 0; // do something 
      a[i+1] = 0; // do something
      a[i+2] = 0; // do something
      a[i+3] = 0; // do something
    }

基本上,当你到达第4个最后一个元素时,你就会停止循环。

在这里,您将处理数组中间的元素,而不是数组中间两侧的元素。

如果您希望每个元素只处理一次,那么在for循环中将i递增4,以确保每个元素只处理一次。

要求不明确所以建议不同的选项,您需要在调试模式下尝试它们,以便您更好地学习它并实现更好的解决方案。

答案 2 :(得分:1)

您可以使用一点递归和不错的es6语法来执行此操作:

&#13;
&#13;
const myArr = [1, 2, 3, 4, 5, 6]

const pairValues = (arr, pos = 0, newArr = []) => {
  // check if indexing is out of the bounds of the array
  if (arr[pos + 1] === undefined) {
    return newArr
  }
  newArr.push([arr[pos], arr[pos + 1]])
  // recursively call pairValues function
  return pairValues(arr, pos + 1, newArr)
}
// log result
console.log(pairValues(myArr)) // [[1,2],[2,3],[3,4],[4,5],[5,6]]
&#13;
&#13;
&#13;