Javascript - 将数组声明为变量并进行切片处理

问题描述 投票:0回答:1

我有一个对象数组,我试图根据不同的URL以不同的索引进行分片。

data.Results.Data 是我的数组。

我声明了一个变量 arrList 等于 data.Results.Data 当 console.logging my arrList 我看到了我所期望的结果。

当启动我的条件,并在不同的索引上切片,然后控制台记录数组时,我得到的是整个数组,而不是我所期望的切片数组。

这是我的代码。

function retrieveData(data) {
  const arrList = data.Results.Data;
  const urlStr = window.location.pathname;
  if (urlStr.includes("/states/")) {
    arrList.slice(23, 46);
    console.log(arrList, "Slice");
  } else if (urlStr.includes("/countries/")) {
    arrList.slice(46, 69);
    console.log(arrList, "Slice");
  } else if (urlStr.includes("/cities/")) {
    arrList.slice(69, 90);
    console.log(arrList, "Slice");
  }
}

我试着声明 arrList 内的条件语句,这就可以了,但我想让变量 arrList 在整个函数的范围内可用。我希望当条件满足时,能看到被切分的数组。

javascript arrays slice
1个回答
1
投票

切片 不会替换或修改现有的数组。你需要重新定义它

arrList = arrList.slice(69, 90)

否则使用 拼接.

function retrieveData(data) {
  const arrList = data.Results.Data;
  const urlStr = window.location.pathname;
  let slicedData = [];
  if (urlStr.includes("/states/")) {
    slicedData = arrList.slice(23, 46);
    console.log(arrList, "Slice");
  } else if (urlStr.includes("/countries/")) {
    slicedData = arrList.slice(46, 69);
    console.log(arrList, "Slice");
  } else if (urlStr.includes("/cities/")) {
    slicedData = arrList.slice(69, 90);
    console.log(arrList, "Slice");
  }
  return slicedData;
}
© www.soinside.com 2019 - 2024. All rights reserved.