如何在.join()之后使用array.splice()?

时间:2017-05-26 18:24:33

标签: javascript arrays array-splice

在使用join()函数后,我无法弄清楚如何从数组中删除项目。

正如您将看到的,第一个array.splice()有效,但第二个没有...

var recordsArray1 = ['a','b','c','d','e','f'];
	
console.log(recordsArray1.length);
recordsArray1.splice('a', 1);
console.log(recordsArray1);

var recordsArray2 = ['g','h','i','j','k','l'].join('\n');
	
console.log(recordsArray2.length);
recordsArray2.splice('g', 1);
console.log(recordsArray2);

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

Array.prototype.join(separator)将数组转换为separator分隔的字符串。如果要使用换行连接元素,请在执行任何其他数组操作后执行连接,例如切片。

答案 1 :(得分:0)

https://www.w3schools.com/jsref/jsref_join.asp

join将它从数组转换为字符串

答案 2 :(得分:0)

如果我理解你的需要,你可能想要映射元素并为每个元素添加换行符,而不是将数组连接到字符串。这应该做:



recordsArray2 = ['g','h','i','j','k','l']
recordsArray2.map((x) => x + "\n")




答案 3 :(得分:0)

首先,您使用splice是不对的。你的意图似乎是“请,分别删除一个”,“请删除一个g”。但这不是拼接的工作方式。第一个参数是 index ,它的正确用法是.splice(0, 1)(读取:从索引0开始删除一个元素)。

其次,join使用提供的序列将Array转换为字符串。因此,['g','h','i','j','k','l'].join('\n');g\nh\ni\n...作为字符串生成,其中没有join方法。所以,为了删除g,我建议在之后加入数组你删除g:var arr =['g','h','i','j','k','l']; arr.splice(0, 1); arr = arr.join('\n');(或者毕竟不加入它,因为我认为这不是你想要的做)。另一种方法是在加入后去除G,例如var arr =['g','h','i','j','k','l'].join('\n').substr(2)(将返回从第三个字符开始的字符串,因此删除g和以下\ n。)