从数组中删除最后一个元素(从字符串中删除最后一行)

时间:2012-10-12 15:05:46

标签: javascript jquery

我的textfield有这个值:

"1  
2  2
3  
4  4
5  a
6  
7  
8
"

当我用“\ n”分割它时,我得到:

["1", "2  2", "3", "4  4", "5  a", "6", "7", "8", ""]

我想删除最后一个元素。我这样做:

$('#textArrayId').val().replace($('#textArrayId').val().split("\n")[$('#textArrayId').val().split("\n").length - 1], "")

我无法删除它。怎么办?

我想用字符串操作,而不是数组操作。

3 个答案:

答案 0 :(得分:3)

要删除最后一行,请使用此

var lines = $('#textArrayId').val().split("\n");
var withoutLastLine = lines.slice(0, -1).join("\n");
$('#textArrayId').val(withoutLastLine);

或者如果你想删除没有空格的最后一行:

var lines = $.trim($('#textArrayId').val()).split("\n");
var withoutLastLine = lines.slice(0, -1).join("\n");
$('#textArrayId').val(withoutLastLine);

要删除数组的最后一个元素,请使用此表达式接收除最后一个元素之外的所有元素:

x.slice(0, -1)

答案 1 :(得分:2)

最好在拆分之前修剪空白。这样你就可以更有力地处理输入:

var lines = document.getElementById('textArrayId').value
               .replace(/^\s+|\s+$/g,'').split(/\s+/);

分割中使用的正则表达式也允许输入,如:

1    2
  3         4  5 6
 7    8

另请注意:没有使用jQuery ^ _ ^

答案 2 :(得分:1)

您可以像[7]一样使用有界数组来存储1到8之间的值。