输入:[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))
这个错误。
undefined is not iterable (Can cannot read property Symbol(Symbol.iterator))
是由于。
[a,b] = [b,a].forEach(/* ... */)
forEach
总是返回 undefined
和。
[a,b] = undefined
会引发错误,因为 undefined
是不可迭代的。
这个解决方案是基于假设你是一次提供不同的数组,而不是数组的数组,如果你的输入是数组的数组,请告诉我,我会根据这个情况修改解决方案。如果你的输入是数组的数组,请告诉我,我将根据这一点修改解决方案。
你可以使用 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>