XMLHttpRequest操作JSON文件时findIndex始终返回-1问题咨询
问题原因
你遇到的问题是两个错误共同导致的:
- 匹配的属性名写错了:你的JSON对象里没有
name字段,你要匹配的价格对应的属性是price,你现在findIndex里判断的obj.name永远是undefined,自然匹配不到值 - 数据类型不匹配:
$('#price').val()从输入框拿到的值是字符串类型,而JSON解析后得到的price字段是数字类型,用严格相等===判断时,类型不一致会直接返回false
修复方案
把findIndex对应的代码改成下面的写法即可:
// 把obj.name改成obj.price,同时把输入的price显式转成数字类型匹配 var index = jsonArr.findIndex(obj => obj.price === Number(price));
额外注意:你现在写的
jsonArr.splice(index)逻辑是从匹配到的索引位置开始,删除数组后续所有元素,如果你只需要删除匹配到的那一项,应该改成jsonArr.splice(index, 1)。
内容的提问来源于stack exchange,提问作者sokoviaaccords
相关产品推荐
相关产品推荐

