交换阵列和反向[关闭]

问题描述 投票:-4回答:2

输入:[2,4,5] , ['a', 'b', 'c']输出。['c', 'b', 'a'] , [5,4,2]

function exchangeWith(a,b){
    [a,b] = [b,a].forEach(e  => e = e.reverse() )
}

我得到这个错误:undefined is not iterable (Can cannot read property Symbol(Symbol.iterator))

javascript reverse
2个回答
0
投票

这个错误。

undefined is not iterable (Can cannot read property Symbol(Symbol.iterator))

是由于。

[a,b] = [b,a].forEach(/* ... */)

forEach 总是返回 undefined 和。

[a,b] = undefined

会引发错误,因为 undefined 是不可迭代的。


-1
投票

这个解决方案是基于假设你是一次提供不同的数组,而不是数组的数组,如果你的输入是数组的数组,请告诉我,我会根据这个情况修改解决方案。如果你的输入是数组的数组,请告诉我,我将根据这一点修改解决方案。

你可以使用 lodash 的库。

const updatedArray = _.reverse(array)。

这里是示例。

let array = [1,2,3];
let array2 = ["c","d","a"];

const test = (array, index) => {
  document.getElementById("input" + index).innerHTML = array.join(", ");
  const updatedArray = _.reverse(array);
  document.getElementById("output" + index).innerHTML = updatedArray.join(", ");
};

test(array, 1);
test(array2, 2);
<html>
  <head>
  <script src="https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js"></script>
  </head>
  <body>
    <p>Input: <span id="input1"></span></p>
    <p>Output: <span id="output1"></span></p>
    <br/>
    <p>Input: <span id="input2"></span></p>
    <p>Output: <span id="output2"></span></p>
  </body>
</html>
© www.soinside.com 2019 - 2024. All rights reserved.