【问题标题】:Why is my array returning empty? [duplicate]为什么我的数组返回空? [复制]
【发布时间】:2017-09-13 19:54:20
【问题描述】:

var array= ["a", "b", "c", "d"]
var finalArray= array.slice(2,2);
console.log(finalArray);

这会返回:

finalArray=[]

我希望它返回:

finalArray=["c","d"]

【问题讨论】:

标签: javascript arrays


【解决方案1】:

第一个参数是开始提取的索引,第二个参数是结束提取的之前的索引。因此,要获取最后两个元素(索引 2 和 3),您需要这样做:

var array= ["a", "b", "c", "d"]
var finalArray = array.slice(2, 4); // or slice(2), since 4 is the length of this array

console.log(finalArray);

有关Array.prototype.slice() 的更多信息,请访问MDN documentation

【讨论】:

    【解决方案2】:

    改为slice(2,4)。 slice() 方法将数组的一部分的浅拷贝返回到从开始到结束(不包括结束)选择的新数组对象中。原始数组不会被修改。- MDN

    【讨论】:

      【解决方案3】:

      您需要提供结束索引作为Array#slice 方法中的第二个参数。你得到一个空数组,因为你提供相同的开始和结束索引(中间没有元素)。

      var array = ["a", "b", "c", "d"]
      var finalArray = array.slice(2, 4);
      console.log(finalArray);

      仅供参考:如果您想从起始索引中获取整个元素,请忽略第二个参数。

      var array = ["a", "b", "c", "d"]
      var finalArray = array.slice(2);
      console.log(finalArray);

      【讨论】:

        【解决方案4】:

        第二个索引(结尾)必须是您希望结尾从 0 开始的 +1。因此,如果您希望元素 2 和 3(始终从 0 开始)这样做:

        return array.slice(2, 4);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-07-25
          • 2022-01-09
          • 2018-12-19
          • 2012-05-21
          • 2015-05-25
          • 1970-01-01
          相关资源
          最近更新 更多