Я не понимаю, почему indexOf() печатает -1, хотя значения находятся в массиве. У меня такой же результат с функцией include(), она возвращает мне false.
Кажется, я чего-то не понимаю или что-то забыл.
У вас есть идеи, почему результат отрицательный, когда мы видим, что значения находятся в массиве?
Спасибо
var i = 0
let array = []
class MovieRow extends React.Component {
constructor(props) {
super(props)
this.addFavorite = this.addFavorite.bind(this)
this.deleteFavorite = this.deleteFavorite.bind(this)
this.state = {
isFaved: false,
favMovie: ""
}
}
addFavorite() {
this.setState({isFaved: true})
this.state.favMovie = "".concat(baseURL, 'movie/', this.props.movie.id ,'?api_key=', APIKEY)
var counts = []
for (var i = 0; i < myFavoriteMovies.length; i++) {
var index = myFavoriteMovies[i]
counts[index] = counts[index] ? counts[index] + 1 : 1;
}
if (myFavoriteMovies.indexOf(this.state.favMovie) === -1) {
myFavoriteMovies.push(this.state.favMovie)
localStorage.setItem(this.props.movie.id, this.state.favMovie)
}
}
deleteFavorite() {
this.setState({isFaved: false})
var removeThisMovie = myFavoriteMovies.indexOf(this.state.favMovie)
myFavoriteMovies.splice(removeThisMovie,1)
localStorage.removeItem(this.props.movie.id,removeThisMovie)
}
componentDidMount() {
console.info(array)
console.info("Value = "+this.props.movie.id)
console.info("Res indexOf = " +array.indexOf(this.props.movie.id))
}
можете ли вы разместить код унаследованного класса
Упс... Спасибо, Дэвид.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


indexOf и includes поиск точных совпадений.
this.props.movie.id будет 491418, а значение в массиве равно "491418".
Вам нужно преобразовать this.props.movie.id в строку.
array.indexOf("" + this.props.movie.id)
Вы сравниваете строки и целые числа.