我是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
}

07-24 14:18