Удаление элементов из массива
Доброго времени суток, друзья. Интересует следующий момент. В js, я пытаюсь создать массив с числами, добавив в них id с чекбоксов. Массив при выделении чекбокса заполняется, но вот убрать это число из массива не выходит. Если выходит, то повторять действия нужно в том же порядке. В чём может быть дело? Заранее спасибо, за дельный совет :thanks:
doSomething = (props) => {
let num = Number(props);
for (let i = 0; i <= this.state.nums.length; i++) {
if (num === this.state.nums[i]) {
this.state.nums.splice(i, 1);
break;
} else {
this.state.nums.push(num);
break;
}
}
this.setState({ newArr: this.state.nums });
console.log(this.state.newArr);
};
|
Не совсем понятно, что вам именно надо.
Похоже надо добавить число в массив, если его там нет, или удалить, если оно там есть. Тогда так
doSomething = (props) => {
let num = Number(props);
let k = this.state.nums.indexOf(num);
if (k<0) {
this.state.nums.push(num)
} else {
this.state.nums.splice(k, 1);
}
this.setState({ newArr: this.state.nums });
console.log(this.state.newArr);
};
|
Спасибо огромное! Просто нет слов!!!
|
я так понимаю, что это из реакта кусок, ну так есть плохая новость, что нельзя менять стейт не через setState ;)
|
Ни капли не знаток реакта, но вроде там есть
this.setState({ newArr: this.state.nums }); |
Цитата:
Цитата:
|
| Часовой пояс GMT +3, время: 18:50. |