我是Java语言新手。我有一个JS方法。我有很多无线网络列表。但是几乎时间SSID和SecurityMode都一样。如果两者相同,我想过滤。就像假设SSID是“ sampleWifi”和SecurityMode是“ PSK”,并且相同的SSID和SecurityMode再次出现。如何避免添加列表数组。
我的代码如下:
device.networkList = [];
for (var i = 1; i <= jqXHR.responseJSON.length; i++) {
site = jqXHR.responseJSON[i - 1];
device.networkList.push({
name: site["AvailableNetworks." + i + ".SSID"],
signal: site["AvailableNetworks." + i + ".SignalStrength"],
security: site["AvailableNetworks." + i + ".SecurityMode"]
});
}
输出为:A PSK,B PSK,C PSK,D PSK,A PSK,B PSK,R PSK,S PSK
预期输出:A PSK,B PSK,C PSK,D PSK,R PSK,S PSK
注意:此处在数组中重复相同的A PSK,B PSK。但是我不想在数组中添加相同的重复值。
如何设置条件是SecurityMode会出现,因此不应添加device.networkList数组。
请帮我。
谢谢
最佳答案
正如Rayon所说,您只需要遍历数组并检查以前是否已提供类似的值。
可能是这样的功能:
function isDuplicate(networks, name, security) {
for (var i = 0; i < networks.length; i++) {
if(networks[i].name == name && networks[i].security == security) // Found duplicate
return true;
}
return false; // Doesn't already exist
}