Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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,我不知道这里发生了什么。。。我试图复制一个数组,然后洗牌并加入副本,但它就是不配合 我有一个JS文件,正在顶部初始化一个新数组: var myArray = []; 加载这个JS文件后,我从Facebook API中提取数据,并将结果粘贴在myArray中,周围还有一些HTML 然后,我有一个函数,我在单击按钮时调用该函数,该函数从myArray创建一个新变量,然后连接并打印div元素中的文本: var namesList = myArray; namesList.join(''); $('#

我不知道这里发生了什么。。。我试图复制一个数组,然后洗牌并加入副本,但它就是不配合

我有一个JS文件,正在顶部初始化一个新数组:

var myArray = [];
加载这个JS文件后,我从Facebook API中提取数据,并将结果粘贴在
myArray
中,周围还有一些HTML

然后,我有一个函数,我在单击按钮时调用该函数,该函数从
myArray
创建一个新变量,然后连接并打印div元素中的文本:

var namesList = myArray;
namesList.join('');
$('#my_div').text(namesList);
它显然被简化了,但前提是一样的

我的问题是,阵列没有像它应该的那样连接。它仍然是数组形式,我尝试过的任何方法都无法解决这个问题。我也试过:

var namesList = myArray.slice();

无济于事

但是:我可以在同一个函数中操作
myArray
而不会出现任何问题,并获得所需的结果。问题是,我需要能够在每次调用函数时洗牌数组,然后将其打印为文本;这就是为什么我要在第一时间复制它

就我的一生而言,我不明白为什么这不起作用。这里我需要做的就是在我调用的函数范围内创建一个变量的副本,将它洗牌,加入它,然后打印它


我该如何解决这个问题?或者,有更好的替代方案吗?非常感谢

这是因为namesList仍然是一个数组
join()
返回一个字符串,您应该使用该字符串:

var namesList = myArray.join('');
$('#my_div').text(namesList);

这是因为namesList仍然是一个数组
join()
返回一个字符串,您应该使用该字符串:

var namesList = myArray.join('');
$('#my_div').text(namesList);
这将加入数组,然后丢弃结果。你想要

   namesList = namesList.join('');
这将加入数组,然后丢弃结果。你想要

   namesList = namesList.join('');
join()
方法返回一个字符串,而不是修改数组引用-您需要将代码更改为:

var namesList = myArray;
namelist = namesList.join('');
$('#my_div').text(namesList);
join()
方法返回一个字符串,而不是修改数组引用-您需要将代码更改为:

var namesList = myArray;
namelist = namesList.join('');
$('#my_div').text(namesList);

我完全是因为它不修改数组,它只返回一个字符串。那就是钥匙!非常感谢。我完全是因为它不修改数组,它只返回一个字符串。那就是钥匙!非常感谢。