我有一个对象数组,我试图根据不同的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
在整个函数的范围内可用。我希望当条件满足时,能看到被切分的数组。
切片 不会替换或修改现有的数组。你需要重新定义它
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;
}