简单JavaScript数组代码错误,拾取数组的元素并删除
我正在尝试将1、2或3个没有声誉的数据推送到nosamenumbers数组。 但是,控制台有时会给我输出[1,1][2,2] 我在numbers数组中选择一个数字,然后按下noSameNumbers,然后删除我在数组中选择的文本 同样的代码,但控制台给了我奇怪的数据 为什么?简单JavaScript数组代码错误,拾取数组的元素并删除,javascript,arrays,Javascript,Arrays,我正在尝试将1、2或3个没有声誉的数据推送到nosamenumbers数组。 但是,控制台有时会给我输出[1,1][2,2] 我在numbers数组中选择一个数字,然后按下noSameNumbers,然后删除我在数组中选择的文本 同样的代码,但控制台给了我奇怪的数据 为什么? 您的numbers.splice不正确,因此同一个数字有可能被选中两次,因为它实际上没有从阵列中删除(而是从阵列中删除了不正确的数字) 与其说要从数组中删除哪个项,不如将要从数组中删除的项的索引传递到函数中。看 要查找要从
您的numbers.splice不正确,因此同一个数字有可能被选中两次,因为它实际上没有从阵列中删除(而是从阵列中删除了不正确的数字) 与其说要从数组中删除哪个项,不如将要从数组中删除的项的索引传递到函数中。看 要查找要从数组中删除的项的索引,请使用 您的固定代码:
var noSameNumbers = [];
var numbers = [1,2,3];
var what = numbers[ Math.floor(Math.random()*numbers.length) ];
noSameNumbers[0] = what;
numbers.splice(numbers.indexOf(what),1); // this is the line I changed
var what2 = numbers[ Math.floor(Math.random() * numbers.length) ];
noSameNumbers[1] = what2;
console.log(noSameNumbers);
var noSameNumbers = [];
var numbers = [1,2,3];
var what = numbers[ Math.floor(Math.random()*numbers.length) ];
noSameNumbers[0] = what;
numbers.splice(numbers.indexOf(what),1); // this is the line I changed
var what2 = numbers[ Math.floor(Math.random() * numbers.length) ];
noSameNumbers[1] = what2;
console.log(noSameNumbers);