[英]Removing an element of an array, is removing all javascript
试图在单击按钮时从数组中删除一个元素 发生的事情是它似乎在第二次单击时删除了所有元素?
我已经编辑了这个; 我需要的是重置 winArray winArray=[]; 每次点击按钮时,用 mainSlotArr 填充它,然后删除 1 个元素,检查控制台,它只执行一次
这是我迄今为止尝试过的;
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<script>
mainSlotArr =["1", "2", "3", "4", "5", "6"];
var winArray =[];
var winSpin = function () {
winArray = mainSlotArr.splice(0);
var winIcon = winArray[0];
winArray = removeFromArray(winArray, winIcon);
}
function removeFromArray(array, el) {
var pos = array.indexOf(el);
pos > -1 && array.splice(pos, 1);
console.log(winArray)
}
</script>
</head>
<body>
<div>
<button type="button" onclick="winSpin();">Click Me!</button>
</div>
</body>
</html>
提前致谢
splice
数组方法不仅返回某个范围内的元素数组,还会将它们从原始数组中移除,因此当您在mainSlotArr
上调用参数为 0 的splice
时,您是在告诉它“从第一个元素开始获取所有元素”。 如果您想一次获取一个元素,则需要向splice
传递第二个参数,该参数确定要提取splice(0, 1)
的元素数量。
嗨,有时间回去看看这个,mainSlotArr 和所有数组都被清空的原因是我应该使用切片而不是拼接(这就是你在压力下工作时发生的情况!!)下面的脚本有效正如预期的那样,真的不敢相信这被降价了
<head>
<meta charset="UTF-8">
<script>
var mainSlotArr =["1", "2", "3", "4", "5", "6"];
var mCopy = mainSlotArr.slice();
var firstTime = true;
var winArray = [];
var winSpin = function () {
winArray = mCopy.slice();
console.log(winArray)
var winIcon = winArray[0];
winArray = removeFromArray(winArray, winIcon);
}
function removeFromArray(arr, el) {
var pos = arr.indexOf(el);
pos > -1 && arr.splice(pos, 1);
mCopy = winArray.slice();
}
</script>
</head>
<body>
<div>
<button type="button" onclick="winSpin();">Click Me!</button>
</div>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.