react splice returns 对面我删了什么?
React splice returns opposite of what I delete?
我正在尝试删除数组的前两个、三个、四个索引。这是我的代码:
returnFilteredRoles() {
if (this.props.user.role_id == 1 || this.props.user.role_id == 2) {
return this.state.data;
} else if (this.props.user.role_id == 3) {
return this.state.data.splice(0, 2);
} else if (this.props.user.role_id == 4) {
return this.state.data.splice(0, 3);
} else if (this.props.user.role_id == 5) {
return this.state.data.splice(0, 4);
}
}
例如:data = [1,2,3,4,5]
;
if role_id == 3
,应该return [3,4,5]
。取而代之的是 returns [1,2]
。不知道为什么。
我尝试将状态存储到一个变量中并拼接该变量,然后 returning 那个。但它给出了相同的结果。
slice() doesn't mutate the array it returns a new array with the selected elements. However, splice() 改变数组
因此,为了让您的示例使用 slice 来工作,您需要做
data = [1,2,3,4,5];
var slicedata=data.slice(2,)
console.log("sliced array", slicedata)
console.log("original array", data)
使用splice
data = [1,2,3,4,5];
var slicedata=data.splice(2,4)
console.log("spliced array", slicedata)
console.log("original array", data) // notice the difference
问题是,切片 returns 您切出的元素:
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3);
console.log(citrus); // ["Orange", "Lemon"]
我正在尝试删除数组的前两个、三个、四个索引。这是我的代码:
returnFilteredRoles() {
if (this.props.user.role_id == 1 || this.props.user.role_id == 2) {
return this.state.data;
} else if (this.props.user.role_id == 3) {
return this.state.data.splice(0, 2);
} else if (this.props.user.role_id == 4) {
return this.state.data.splice(0, 3);
} else if (this.props.user.role_id == 5) {
return this.state.data.splice(0, 4);
}
}
例如:data = [1,2,3,4,5]
;
if role_id == 3
,应该return [3,4,5]
。取而代之的是 returns [1,2]
。不知道为什么。
我尝试将状态存储到一个变量中并拼接该变量,然后 returning 那个。但它给出了相同的结果。
slice() doesn't mutate the array it returns a new array with the selected elements. However, splice() 改变数组 因此,为了让您的示例使用 slice 来工作,您需要做
data = [1,2,3,4,5];
var slicedata=data.slice(2,)
console.log("sliced array", slicedata)
console.log("original array", data)
使用splice
data = [1,2,3,4,5];
var slicedata=data.splice(2,4)
console.log("spliced array", slicedata)
console.log("original array", data) // notice the difference
问题是,切片 returns 您切出的元素:
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3);
console.log(citrus); // ["Orange", "Lemon"]