【问题标题】:Setting the last element of an array to a separate String and then removing said element将数组的最后一个元素设置为单独的字符串,然后删除该元素
【发布时间】:2012-04-07 03:18:22
【问题描述】:

我有一个可以包含 1 到 11 个元素的数组。我想删除最后一个元素并使其成为一个新字符串,然后将数组列表的其余部分设置为一个集体字符串。以下代码不起作用...我是否需要包含 if else 以防数组列表只有一个元素? (我知道我知道,我想知道这是否会导致脚本根本不被执行)

var finaling = checked[checked.length].toString();
    checked.splice(checked[checked.length]);
    checked.toString();

【问题讨论】:

    标签: javascript html arraylist


    【解决方案1】:

    这就是我的做法......

    我想删除最后一个元素...

    checked.pop();
    

    ...并使其成为一个新字符串...

    checked.push('new string');
    // or skip the above `pop()`
    checked[checked.length - 1] = 'new string';
    

    ...然后将数组列表的其余部分设置为一个集合字符串。

    checked = checked + '';
    

    数组的默认toString() 将使用',' 连接元素。如果您想使用不同的连接字符,请使用join()

    【讨论】:

      【解决方案2】:

      我不确定您要做什么,但应该这样做:

      var lastElementInArray = checked.splice(checked.length-1)[0].toString();
      var stringOfChecked = checked.toString();
      

      或者如果你想移除一个数组的最后一个元素并返回一个代表新数组的字符串:

      checked.splice(checked.length-1, 1);
      var finaling = checked.toString();
      

      注意事项:array.splice() 返回一个元素数组;如果你只有一个元素并且你想要那个实际的元素,你会想要使用array.splice(...)[0]

      【讨论】:

      • 嗯...为什么是长度减一?长度不会是最后一个元素吗?
      • 请记住,Javascript 中的数组是从 0 开始索引的,因此包含三个元素的数组的长度为 3,但元素位于位置 0、1 和 2。因此,最后一个元素是数组减 1。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-16
      • 2012-01-05
      • 2017-09-28
      • 2013-10-07
      • 1970-01-01
      • 2017-08-25
      相关资源
      最近更新 更多