Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中将值从一个数组移动到另一个数组?_Javascript_Arrays - Fatal编程技术网

如何在Javascript中将值从一个数组移动到另一个数组?

如何在Javascript中将值从一个数组移动到另一个数组?,javascript,arrays,Javascript,Arrays,假设我有两个数组 var shoppingList = ["bread","milk"]; var boughtItems = []; 如果我想将一个项目从一个阵列移动到另一个阵列,我将如何进行 例如: function purchaseItem (item) { boughtItems.push( shoppingList.splice( shoppingList.indexOf( item ),1 ); } 您缺少了一个),而且您还需要像这样获得第一个项目 function pu

假设我有两个数组

var shoppingList = ["bread","milk"];
var boughtItems = [];
如果我想将一个项目从一个阵列移动到另一个阵列,我将如何进行

例如:

function purchaseItem (item) {
    boughtItems.push( shoppingList.splice( shoppingList.indexOf( item ),1 );
}
您缺少了一个
,而且您还需要像这样获得第一个项目

function purchaseItem (item) {
    boughtItems.push( shoppingList.splice( shoppingList.indexOf(item),1)[0]);
}

但是请记住数组是从索引
0
开始的,因此数组中的第一个索引是
0
,下一个索引是
1
,依此类推。

为此,使用
集合,它在逻辑上更加简洁,并且是常量插入/删除

var list = new Set(['bread', 'milk']);
var bought = new Set;
function purchaseItem(item) {
  list.delete(item);
  bought.add(item);
}

为什么不使用所需的项创建一个新数组?您可以使用
filter
,因为它应该与您的一样,但为了可读性,我将推送/拼接操作分开。另外,我不知道您是否尝试了上面的代码,但缺少了一个括号。
var list = new Set(['bread', 'milk']);
var bought = new Set;
function purchaseItem(item) {
  list.delete(item);
  bought.add(item);
}