我正在寻找将字符串数组的子字符串复制到新数组中而不创建引用。这让我很头疼,但这应该很简单。
我在一个循环中尝试过NewArray[n] = OldArray[n].substr(x,y).slice(0)
,但不起作用。(我需要做一个NewArray.sort()
之后)。
举例来说,假设我得到了一个OldArray
包含 2 个元素的元素:
['River', 'Lake']
我希望新数组由旧数组的前 2 个字符(子字符串)组成,这样:
['Ri', 'La']
我正在寻找将字符串数组的子字符串复制到新数组中而不创建引用。这让我很头疼,但这应该很简单。
我在一个循环中尝试过NewArray[n] = OldArray[n].substr(x,y).slice(0)
,但不起作用。(我需要做一个NewArray.sort()
之后)。
举例来说,假设我得到了一个OldArray
包含 2 个元素的元素:
['River', 'Lake']
我希望新数组由旧数组的前 2 个字符(子字符串)组成,这样:
['Ri', 'La']
将字符串数组的子字符串复制到新数组中而不创建引用
字符串是 JavaScript 中的原始值,而不是对象。将旧的值分配给新数组时将没有引用,尤其是在使用substr
. 与字符串一起使用时,slice(0)
您使用的 是多余的,在您的情况下也不需要在数组上。
您的代码应该可以工作:
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) );