gpt4 book ai didi

javascript - 如何编写没有拼接的移位函数

转载 作者:搜寻专家 更新时间:2023-11-01 05:29:57 24 4
gpt4 key购买 nike

我一直在尝试为一些基本的数组方法编写函数,但现在无法在不使用拼接的情况下重新创建移位。任何建议将不胜感激。

MyShift = function (array) {
for (i = array.length - 2; i >= 0; i--) {
array[i] = array[i + 1];
}
--array.length;
};

最佳答案

这是因为你是如何迭代的,你将 i 的值更改为 i+1 然后向后移动,所以你将最后一个值分配给所有位置

MyShift = function(array) {
for (var i = 0; i < array.length - 1; i++) {
array[i] = array[i + 1];
};
--array.length;
};

var a = ['a', 'b', 'c'];
MyShift(a);
document.body.appendChild(document.createTextNode(a))

在上面的例子中,当你在第一次迭代中循环时你有 i=1,所以你有 array[1] = array[2],所以数组变成 [a, c, c],然后是下一个 i=0 所以你有 array[0] = array[1],但是因为上一次迭代已经更新了 arra[1] 的值,您将拥有 [c,c,c]

MyShift = function(array) {
snippet.log('src: ' + array)
for (i = array.length - 2; i >= 0; i--) {
array[i] = array[i + 1];
snippet.log('loop ' + i + ': ' + array);
}
--array.length;
};

var a = ['a', 'b', 'c'];
MyShift(a);
snippet.log('Result: ' + a)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

关于javascript - 如何编写没有拼接的移位函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33471828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com