如何检查Javascript函数中的条件?
我是Javascript新手。我有一个JS方法。我有很多wifi网络的列表。但是几乎所有的时间SSID和SecurityMode都是一样的。如果两者相同,我想进行筛选。假设SSID是“sampleWifi”&SecurityMode是“PSK”,同样的SSID和SecurityMode再次出现。如何避免添加列表数组 我的代码如下:如何检查Javascript函数中的条件?,javascript,html,ios,Javascript,Html,Ios,我是Javascript新手。我有一个JS方法。我有很多wifi网络的列表。但是几乎所有的时间SSID和SecurityMode都是一样的。如果两者相同,我想进行筛选。假设SSID是“sampleWifi”&SecurityMode是“PSK”,同样的SSID和SecurityMode再次出现。如何避免添加列表数组 我的代码如下: device.networkList = []; for (var i = 1; i <= jqXHR.responseJSON.length; i++)
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"]
});
}
device.networkList=[];
对于(var i=1;i您需要一个函数或代码来读取数组中的所有值,并通过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 foo = exists(array, function (item) {
return item.name == "foo" && item.security == "integrated";
});
console.log(foo); // true
您需要有一个函数或代码来读取数组中的所有值,并通过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 foo = exists(array, function (item) {
return item.name == "foo" && item.security == "integrated";
});
console.log(foo); // true
正如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
}
功能是双重的(网络、名称、安全性){
对于(var i=0;i
如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
}
功能是双重的(网络、名称、安全性){
对于(var i=0;i
您可以使用对象或集合(如果支持ES6)来跟踪您已经添加的内容,然后在条件中检查该集合。您可以使用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);
}
});
有关集合的信息,请参见。您可以使用对象或集合(如果支持ES6)跟踪已添加的内容,然后在条件中检查该集合。您可以使用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);
}
});
查看集合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
});
}
}
}
var sap_ssid;
var sap_信号强度;
var-sap_-securityMode;
device.networkList=[];
对于(var i=1;i是的,我得到了它
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
});
}
}
}
var sap_ssid;
var sap_信号强度;
var-sap_-securityMode;
device.networkList=[];
对于(var i=1;我只是检查您是否已经在数组中推送了相同的值
如何在JS中检查它。这就是我的问题:)还记得循环的,如果条件?对不起,我不明白你的问题。你得到了什么结果?你想要什么结果?还是不明白。请在jqXHR.responseJSON
中显示实际传入的数据和所需的输出结果。如果你愿意显示,我们可以在一秒钟内回答,我们会ld可能提供了更好的方法。只需检查您是否已经在数组中推送了相同的值
如何在JS中进行检查。这就是我的问题:)还记得循环的,如果条件?对不起,我不明白你的问题。你得到了什么结果?你想要什么结果?还是不明白。请在jqXHR.responseJSON
中显示实际传入的数据和所需的输出结果。如果你愿意显示,我们可以在一秒钟内回答,我们会ld可能会提供更好的方法。site.SSID&site.securityMode即将推出undefined@SRNayak-到此为止!如果您只需向我们展示您的实际JSON,那么我们就可以停止猜测其中包含哪些字段。您应该能够将此代码改编为您拒绝向我们展示的神秘JSON中的任何实际属性名称。这向您展示了如何做到这一点。我们无法读懂您对未显示的属性名称的想法。请使用此代码并调整它以匹配您的实际JSON。我已经三次要求您向我们展示您的实际JSON,但您拒绝了。我已经一次又一次地问您了。我理解您的话。但问题是,无论我在上面发布了什么代码,我都想加入仅此代码。无需更改任何内容,只需给出一个条件。因为未经允许,我无法更改该代码。@SRNayak-我向您演示了如何更改代码。如果您不想将其调整为JSON中拒绝与我们共享的实际属性名,那么这不是我的问题。除非您披露,否则我不会回复您整个问题。感谢您的回答@jfriend00:)site.SSID和site.securityMode即将到来undefined@SRNayak-我受够了!如果您只是向我们展示您的实际JSON,那么我们就可以停止猜测其中包含哪些字段。您应该能够根据您拒绝向我们展示的神秘JSON中的任何实际属性名称修改此代码。这会告诉你怎么做。我们无法读懂你对没有显示的房产名称的想法。使用此代码并调整它以匹配实际的JSON。我已经三次要求您向我们展示您的实际JSON,但您拒绝了。我已经一次又一次地问你了,我明白你的话。但问题是,无论我在上面发布了什么代码,我只想在那个代码中。不需要改变任何东西,只需要给出一个条件。因为未经允许我不能更改代码。@SRNayak-我告诉过你怎么做。如果您不想将其调整为您拒绝与我们共享的JSON中的实际属性名,那么这不是我的问题。除非你披露整个问题,否则我不会再回复你了。谢谢你的回答@jfriend00:)