删除数组的元素,删除所有的JavaScript

时间:2016-04-28 11:59:50

标签: javascript arrays

尝试在按钮单击时从数组中删除元素 发生了什么事情似乎是在第二次点击时删除了所有元素?

我编辑了这个;我需要的是winArray重置winArray = []; evrytime单击按钮,用mainSlotArr填充它,然后删除1个元素,检查控制台,它只执行一次

这是我到目前为止所尝试过的;

<head>
    <title>{% block title %}{{ title }}{% endblock %}</title>
    <meta name="description" content="{% block description %}{{ description }}{% endblock %}" />
</head>
<body>
    {% block body %}{{ content }}{% endblock %}
</body>

提前致谢

3 个答案:

答案 0 :(得分:0)

splice数组方法不仅返回某个范围内的元素数组,而且还将它们从原始数组中删除,因此当您在splice上使用参数调用mainSlotArr时0,你告诉它“从第一个开始获取所有元素”。如果你想一次获得一个元素,那么你需要传递splice第二个参数,它确定要提取的元素数量splice(0, 1)

答案 1 :(得分:0)

您似乎正在尝试删除数组的第一个元素?

如果是,为什么不使用shift()

即:

var someArr = [1,2,3,4];
someArr.shift(); // returns 1
// now someArr is : [2,3,4]

否则只需:

function removeFromArray(array, el) {
   var pos = array.indexOf(el);
   pos > -1 && array.splice(pos, 1);
}
removeFromArray(modifiedArray, 'someArrayElement');

JSbin here

答案 2 :(得分:0)

你好回去看看这个,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>
相关问题