【问题标题】:Javascript removing and rearranging array elementsJavascript删除和重新排列数组元素
【发布时间】:2012-09-17 15:37:46
【问题描述】:

我有这个存储在数组中的图像资源集合,用户将选择一个图像,然后将选择的图像从列表中删除(也从数组中),然后重新排列数组。我怎么能执行这样的任务? (尽量不要使用开源库)

【问题讨论】:

    标签: javascript arrays dom


    【解决方案1】:

    简单地说,您可以创建一个临时数组,在其中存储所需的初始数组元素,并将初始数组的值重新分配给临时数组。

       function clean_array(my_array){
           var no_need_value = 'value you want to remove'
           var tmpArray = new Array()
           for (var i = 0; i < my_array.length; i++)
               if (my_array[i] != no_need_value)
                   tmpArray.push(my_array[i])
           my_array = tmpeArray
       }
    

    【讨论】:

      【解决方案2】:

      听起来你需要查找 splice() 方法。它允许您在数组中的任何索引处添加和删除一个到多个项目。

      这里是它的参考。 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/splice

      【讨论】:

      • 会自动重新排列索引吗?
      • var 数组 = ['1', '2', '3']; array.splice(2, 1); // 取索引 2 并删除 1,现在数组是 ['1', '3']
      • 看看这个帖子link
      • 取索引 2 ?不是索引 2 的值是 3 吗?结果怎么来的可用元素是 1 和 3?不应该是1和2吗?因为 index[2] == 3?
      • L0L 感谢您编译我的代码,我的意思是输入 index[1] 即 '2'
      【解决方案3】:

      您的问题缺少代码示例,但您可以使用 Array.splice(index,number) 而 index 从零开始,而 number 是要删除的项目数。

      images.splice(selectedIndex,1);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-01
        • 2011-01-11
        • 1970-01-01
        • 1970-01-01
        • 2017-08-03
        相关资源
        最近更新 更多