javascript - 为什么 indexOf 打印 -1 虽然值在数组中?
问题描述
我不明白为什么 indexOf() 打印 -1 尽管值在数组中。我与函数 include() 的结果相同,它返回错误。
我想我不明白一些东西,或者我忘记了一些东西。
当我们可以看到值在数组中时,您是否知道为什么结果为负?
谢谢
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.log(array)
console.log("Value = "+this.props.movie.id)
console.log("Res indexOf = " +array.indexOf(this.props.movie.id))
}
解决方案
indexOf
并includes
搜索完全匹配。
this.props.movie.id
将是491418
而数组中的值为"491418"
。
您需要转换this.props.movie.id
为字符串。
array.indexOf("" + this.props.movie.id)
推荐阅读
- android - 在 Room 生成的类上发布构建失败:javax.annotation 不存在
- css - 在图像上放置项目
- ios - 获取用户从服务器到订阅 ios 的服务器通知
- android - 找不到已安装的 Gradle 版本
- angular - 纯/文本的 Angular 8/httpclient 错误响应,无法解析响应
- javascript - Javascript:使用 ES6 类中的对象作为成员和静态对象
- php - 如何使用 mysqli 和 SSL 将 PHP 连接到 MySQL
- javascript - 将 div 值放在 php 变量中
- c - Linux C Ncurses 问题
- asp.net-mvc - 从 Azure AD 模拟到 Azure B2C