如何在Javascript函数中检查条件
How to check condition in Javascript function?
我是Javascript的新手。我有一个JS方法。我有很多wifi网络列表。但几乎每次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将出现它不应该添加设备.networkList数组。
请帮帮我。
感谢
它可以是这样一个函数:
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
}
您可以使用对象或Set(如果支持ES6(来跟踪您已经添加的内容,然后在条件中检查Set。您可以通过ssid和securityMode的组合为集合创建一个密钥,这样您就可以在一个密钥中对这两项进行说明;
device.networkList = [];
var soFar = new Set();
jqXHR.responseJSON.forEach(function(site, index) {
var key = site.SSID + site.securityMode;
var i = index + 1;
if (!soFar.has(key)) {
device.networkList.push({
name: site["AvailableNetworks." + i + ".SSID"],
signal: site["AvailableNetworks." + i + ".SignalStrength"],
security: site["AvailableNetworks." + i + ".SecurityMode"]
})
soFar.add(key);
}
});
请参阅JavaScript中的模拟集?对于CCD_ 1 polyfill。
是的。
var sap_ssid ;
var sap_signalStrength;
var sap_securityMode;
device.networkList = [];
for (var i = 1; i <= jqXHR.responseJSON.length; i++) {
site = jqXHR.responseJSON[i - 1];
sap_ssid = site["AvailableNetworks." + i + ".SSID"];
sap_signalStrength = site["AvailableNetworks." + i + ".SignalStrength"];
sap_securityMode = site["AvailableNetworks." + i + ".SecurityMode"];
if (device.networkList.length == 0)
{
device.networkList.push({
name: sap_ssid,
signal: sap_signalStrength,
security: sap_securityMode
});
}
else{
var isfind = false;
for(var j = 0; j < device.networkList.length; j++)
{
if (device.networkList[j].name == sap_ssid && device.networkList[j].security == sap_securityMode)
{
isfind = true;
break;
}
}
if (!isfind)
{
device.networkList.push({
name: sap_ssid,
signal: sap_signalStrength,
security: sap_securityMode
});
}
}
}
您需要有一个函数或代码来读取数组中的所有值,并通过SSID和SecurityMode进行验证,对于用户定义的对象,数组中不存在用于检查的本地函数。
通用功能:
function exists(array, func) {
var value = false;
for (var i = 0; i < array.length; i++) {
value = func(array[i]);
if (value == true) {
break;
}
}
return value;
};
数据:
var array = [];
array.push({ name: "foo", signal: "123", security: "integrated" });
array.push({ name: "bar", signal: "456", security: "none" });
array.push({ name: "zaz", signal: "984", security: "ntm" });
用法:
var foo = exists(array, function (item) {
return item.name == "foo" && item.security == "integrated";
});
console.log(foo); // true
相关文章:
- 如何获取jQuery Confirm(jConfirm)值并使用该值检查条件
- 如何在angularjs中更改文本框类,同时键入和检查条件
- 每次调用函数后都要检查条件
- for循环在javascript中循环一次后不检查条件
- 网格视图中的Checbox检查条件无法按JavaScript的要求工作
- JavaScript - 是否有必要先检查条件
- 检查条件后如何在JavaScript中转到下一页
- 检查条件后转到给定的网址
- 如何使用ASCII值在JavaScript中检查条件
- 非常基本的 JavaScript,使用 || 检查条件(或)
- 表单验证在检查条件后未发出警报
- 继续检查条件是否成立
- 在加载时,如何以数组的形式检查条件中的多个值
- 如何在以编程方式在 JavaScript 中提交表单之前检查条件
- javascript中检查条件的奇怪行为
- 使& # 39;dom-if& # 39;根据另一个元素中的属性检查条件
- Angular ng-show不会连续检查条件
- Javascript在span标签的情况下没有正确检查条件
- 如何在Javascript函数中检查条件
- 检查条件后使用jQuery取消复选框