我有一个json数组:
[
{"id":19,"name":"Jed", "lastname":"DIAZ", "hobby":"photo", "birthday":"2011/11/22"},
{"id":20,"name":"Judith", "lastname":"HENDERSON", "hobby":"pets", "birthday":"1974/06/12"},
{"id":21,"name":"Nicolai", "lastname":"GRAHAM", "hobby":"reading", "birthday":"2005/01/22"},
{"id":22,"name":"Vasile", "lastname":"BRYANT", "hobby":"singing", "birthday":"1987/03/17"}
]
Run Code Online (Sandbox Code Playgroud)
用于从json数组中删除项目的函数
removeItem: function(removeId){
//paramater validation
return dataLoad.then(function(data){
f = data.findIndex(function(item) { return item.id == removeId; });
if(f < 0)
return false;
data.splice(f,1);
LS.setData(data,"cutomers");
return true;
});
}
Run Code Online (Sandbox Code Playgroud)
代码运行时出现错误:
findIndex不是一个函数
错误行
f = data.findIndex(function(item) { return item.id == removeId; });
Run Code Online (Sandbox Code Playgroud)
axe*_*uch 14
findIndex不是的原型方法Array中的EcmaScript 262,你可能需要filter联合indexOf,相反,它具有停止尽快搜索的优势,找到条目
var f;
var filteredElements = data.filter(function(item, index) { f = index; return item.id == removeId; });
if (!filteredElements.length) {
return false;
}
data.splice(f, 1);
Run Code Online (Sandbox Code Playgroud)
编辑按照Nina Scholz的评论建议:
该解决方案是使用Array.prototype.some替代
var f;
var found = data.some(function(item, index) { f = index; return item.id == removeId; });
if (!found) {
return false;
}
data.splice(f, 1);
Run Code Online (Sandbox Code Playgroud)
在Array.prototype.findIndex MDN中找到