我正在尝试将数据添加到localStorage,它是一个多维数组。
为了将数据“追加”到数组中,我使用.getItem
从localStorage中提取数据,使用array.push
添加新数据,然后使用.setItem
重置数据
数组数据看起来有点像这样:
var wishlist = [
["210 Derby Road","http://localhost:8888/properties/210-derby-grove/"]
]
这很好用我唯一的问题是没有添加数据两次,所以我需要搜索数组并查看它是否存在。
我首先尝试使用jQuery实用程序函数:
console.log($.inArray(name, wishlist));
在这种情况下, name
为210 Derby Road
,因此它应返回true。即使数据存在,也会返回-1
。
我想也许是因为这是一个多维数组,我需要循环遍历子数组,所以我创建了一个for
循环:
for (var i = 0; i < wishlist.length; i++) {
console.log($.inArray(name, i));
}
我仍然会-1
返回。
如何检查我的数组wishlist
以查看是否存在name
?
答案 0 :(得分:3)
你几乎做对了!使用:
for (var i = 0; i < wishlist.length; i++) {
console.log($.inArray(name, wishlist[i]));
}
因为wishlist[i]
是当前的数组。
比得到布尔值更喜欢:
if($.inArray(name, wishlist[i]) > -1) { /* do something*/ }
答案 1 :(得分:0)
您可以使用纯JS方法Array.prototype.includes()
。
wishlist.findIndex(f => f.includes(name)) === -1 && // push it.