删除以前的值并更新阵列

时间:2014-12-06 01:03:43

标签: javascript html arrays

从数组中删除先前的值并使用剩余数据进行更新时出现问题。

例如,在代码JSFiddle中,我在阵列中有四个值:BMW,Nissan,Volvo和Saab。

var cars = ["Saab", "Volvo", "BMW" , "Nissan"];
shuffle(cars);
document.getElementById("demo").innerHTML = cars[0];

所以,一旦我“按一个按钮”它显示“宝马”或任何其他值,下次重新装载时应该只在其余值内随机化,即日产,沃尔沃和萨博。

var cars = ["Saab", "Volvo", **"BMW"** , "Nissan"];

直到所有结束,并显示“没有更多值显示”

2 个答案:

答案 0 :(得分:0)

在按钮点击事件中尝试这样的事情......

function removeCard() {
    var index = 0;
    cars.splice(index, 1);
    if (cars.length>0) {
      document.getElementById("demo").innerHTML = cars[0];
    } else {
      document.getElementById("demo").innerHTML = "none left";
    }
}

...点击活动......

document.getElementById("myButton").addEventListener("click", removeCar());

<强>更新

var cars = ["Saab", "Volvo", "BMW", "Nissan"];
shuffle(cars);
document.getElementById("demo").innerHTML = cars[0];
document.getElementById("myButton").addEventListener("click", function() {
    var index = 0;
    cars.splice(index, 1);
    if (cars.length>0) {
      document.getElementById("demo").innerHTML = cars[0];
    } else {
      document.getElementById("demo").innerHTML = "none left";
    }
});

有点精简和清洁。的 jsFiddle

答案 1 :(得分:0)

function shuffle(array) {
  return array.splice(Math.random() * array.length, 1).pop();
}

var cars = ["Saab", "Volvo", "BMW" , "Nissan"];
var car = shuffle(cars);
document.getElementById("demo").innerHTML = car;

更新

另请注意,JSFiddle每次都在重新加载整个JS,即。每次重新加载cars的初始化,因此每次运行时都会使用所有四个初始值刷新它。