【发布时间】:2013-10-24 22:03:35
【问题描述】:
我目前正在制作一个游戏,它需要我从一个数组中取出一个对象并将其放入另一个数组中。
a = obj;
array1.splice(a);
array2.push(a);
(a已经在array1中)
这几乎就是我需要发生的事情。
我不是专家,所以请深入解释您的答案。
【问题讨论】:
标签: javascript arrays push splice
我目前正在制作一个游戏,它需要我从一个数组中取出一个对象并将其放入另一个数组中。
a = obj;
array1.splice(a);
array2.push(a);
(a已经在array1中)
这几乎就是我需要发生的事情。
我不是专家,所以请深入解释您的答案。
【问题讨论】:
标签: javascript arrays push splice
Javascript Array Splice() 方法的工作原理如下...
array.splice(索引,多少)
需要移除item的索引号,移除多少item作为参数,这两个是必须的。
更多信息您可以点击此链接:http://www.w3schools.com/jsref/jsref_splice.asp
所以,您的问题可以通过以下方式解决...
a = obj;
var index = array1.indexOf(a);
array1.splice(index,1);
array2.push(a);
【讨论】:
splice(start, ?deleteCount) 函数用于获取数组中的一个或多个元素,并从数组中移除选中的元素。
slice(?start, ?end) 切片检索选定元素而不更改数组。
例如我有这个数组:
const months = ['Jan', 'March', 'April', 'June'];
let selectedElementsWithSlice = months.slice(2, 3);
//["April"]
// months = ['Jan', 'March', 'April', 'June']
let selectedElements = months.splice(2, 1); // removed from array months
//["April"]
// months = ['Jan', 'March', 'June']
对于您的主题,您希望将元素复制到其他数组。
您有多个解决方案:
array.push(months.slice(2, 3)[0]);
[ ... array, ... months.slice(2, 3) ]
参考资料:
拼接文档:https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
切片文档: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
【讨论】: