检查数据是否存在于.push之前的数组中

时间:2016-05-30 18:26:04

标签: javascript jquery arrays

我正在尝试将数据添加到localStorage,它是一个多维数组。

为了将数据“追加”到数组中,我使用.getItem从localStorage中提取数据,使用array.push添加新数据,然后使用.setItem重置数据

数组数据看起来有点像这样:

var wishlist = [
 ["210 Derby Road","http://localhost:8888/properties/210-derby-grove/"]
]

这很好用我唯一的问题是没有添加数据两次,所以我需要搜索数组并查看它是否存在。

我首先尝试使用jQuery实用程序函数:

console.log($.inArray(name, wishlist));
在这种情况下,

name210 Derby Road,因此它应返回true。即使数据存在,也会返回-1

我想也许是因为这是一个多维数组,我需要循环遍历子数组,所以我创建了一个for循环:

for (var i = 0; i < wishlist.length; i++) {
    console.log($.inArray(name, i));
}

我仍然会-1返回。

如何检查我的数组wishlist以查看是否存在name

JSFiddle

2 个答案:

答案 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.