在Javascript中将字符串数组的子字符串复制到新数组中

在Javascript中将字符串数组的子字符串复制到新数组中,javascript,arrays,string,sorting,Javascript,Arrays,String,Sorting,我希望在不创建引用的情况下将字符串数组的子字符串复制到新数组中。这让我头疼,但这应该相当简单 我在循环中尝试了NewArray[n]=OldArray[n].substrx,y.slice0,但无效。之后我需要做一个NewArray.sort 举个例子,假设我得到了一个包含2个元素的旧数组: ['River', 'Lake'] 我希望新数组由旧数组的前2个字符子字符串组成,以便: ['Ri', 'La'] 将字符串数组的子字符串复制到新数组中,而不创建引用 字符串是JavaScript中的基

我希望在不创建引用的情况下将字符串数组的子字符串复制到新数组中。这让我头疼,但这应该相当简单

我在循环中尝试了NewArray[n]=OldArray[n].substrx,y.slice0,但无效。之后我需要做一个NewArray.sort

举个例子,假设我得到了一个包含2个元素的旧数组:

['River', 'Lake']
我希望新数组由旧数组的前2个字符子字符串组成,以便:

['Ri', 'La']
将字符串数组的子字符串复制到新数组中,而不创建引用

字符串是JavaScript中的基本值,而不是对象。将旧数组的值赋给新数组时,尤其是使用substr创建新字符串时,将不存在引用。当与字符串一起使用时,您使用的slice0是多余的,在您的情况下,数组也不需要

您的代码应该可以工作:

var oldArray = ["River", "Lake"];

var newArray = [];
for (var i=0; i<oldArray.length; i++)
   newArray[i] = oldArray[i].substr(0,2);

// newArray: ["Ri", "La"]

这对我有用。谢谢@Bergi

const newArray = oldArray.map( str => str.substr(0,2) ); 

有一天,在遥远的将来,我们将为此使用ECMAScript 5:谢谢你!我终于注意到,代码中的错误确实要低一点。我测试了排序,问题是如何处理输出@MattiasBuelens:是的,但我认为var newArray=oldArray.mapfunctionstr{return str.substr0,2;};这里有点高。循环会快得多。这并不能回答这个问题。一旦你有足够的钱,你将能够;相反-