我从这个数组中得到了名字。有两次返回的重复名称(例如:“Kenny”),我只想将其推入新数组一次。我有点迷失在这个过程中。这是我到目前为止所做的。
{{1}}
答案 0 :(得分:3)
newArr.indexOf(value)将返回-1
答案 1 :(得分:1)
使用此:
var newArr = [];
var found;
$.ajax({
url: 'https://spreadsheets.google.com/feeds/list//od6/public/values?alt=json',
success: function(data)
{
var entryPoint = data.feed.entry;
// data.feed.entry entry to arrays
for (i = 0; i < entryPoint.length; i++)
{
var fName = entryPoint[i].gsx$firstname.$t;
var lName = entryPoint[i].gsx$lastname.$t;
var email = entryPoint[i].gsx$email.$t;
var total = entryPoint[i].gsx$totalordered.$t;
found = false;
// Check the array for the name
for(var i=0; i < newArr.length; i++)
{
if(newArr[i] == fName)
{
found = true;
break;
}
}
// If name not found, add it
if(!found) newArr.push(fName)
}
}
});
答案 2 :(得分:0)
如果newArr
需要包含唯一值,则它应该是Set
,而不是数组。您可以通过将构造函数传递给数组来将名称放入Set
:
var newSet = new Set(entryPoint.map(entry => entry.gsx$firstname.$t));
将跳过已添加到集合中的任何名称。然后,您可以使用Iterator
获取newSet.values()
以使用存储的名称,或者,如果您更舒服,可以使用它根据集合创建数组:
var newArr = [...newSet.values()];
// or var newArr = Array.from(newSet.values()); if you can't use destructuring
所有这一切,Set
在Internet Explorer中都不可用。但是你可以用polyfill.io来填充它。