1 前言

由于项目需要,需要实现获取服务器不同网卡扫局域网中的某种类型设备,然而不同服务器的网卡个数是不相同的,从而需要动态增加未知属性来统计不同网卡扫到的设备个数。

2 代码

function nicClassify(json){

			var ret = {};
var jsonArr = json.split(",");
var setArr = uniqueArr(jsonArr);
var map={}; if(json == ""){
return ret;
} //init
ret.wireless = 0;
var k=0;
for(var j = 0; j < setArr.length;j++){
var data = setArr[j].toLowerCase();
if(!(data.indexOf("wireless") > -1 || data.indexOf("wifi") > -1 || data.indexOf("wlan") > -1 || data.indexOf("wi-fi") > -1)){
eval("ret.wire"+k+"=0");
eval("map['"+r(data)+"']='wire"+k+"'");
k++;
}
} for(var i = 0; i < jsonArr.length; i++){
var data = jsonArr[i].toLowerCase();
if(data.indexOf("wireless") > -1 || data.indexOf("wifi") > -1 || data.indexOf("wlan") > -1 || data.indexOf("wi-fi") > -1){
ret.wireless ++;
}else {
for(var kk = 0; kk < k; kk++){
if(eval("map['"+r(data)+"']='wire"+kk+"'")){
eval("ret.wire"+kk+"++");
}
} }
}
return ret;
}
function r(s){
return s.replaceAll(" ","_");
} function uniqueArr(array){
var n = [];
for(var i = 0; i < array.length; i++){
if (n.indexOf(array[i]) == -1)
n.push(array[i]);
}
return n;
} //Sample: jsonArrNICs ="wifi,wi-fi,a,a,b,b,b,wlan";
var nicRetMap = nicClassify(jsonArrNICs);

3 说明

一般来说,map.attr1 = val1 等价于map["attr1"] = val1,但是当attr1是带有 ’ ‘,’-‘ 等符号,不能直接使用’.‘操作符来访问。

  

js动态添加未知新属性的更多相关文章

  1. js动态添加onload、onresize、onscroll事件(另类方法)

    js动态添加onload.onresize.onscroll事件(另类方法)   window 的 onload.onresize.onscroll 事件,跟其他的事件不一样,它不能用 attachE ...

  2. 原生JS动态添加和删除类

    原生JS动态添加和删除类 由于需要, 给按钮组监听点击事件(要求用事件委托),当有一个按钮被点击时,相应的给该按钮添加一个类(激活类),其他没有点击的按钮就要移出该类 添加和和删除类有三种方法 首先等 ...

  3. form表单 无法提交js动态添加的表单元素问题。。

    第一种情况, 这种情况js动态添加的表单元素是不能提交到服务器端的 <table> <form method="post" action=" url   ...

  4. 【原生js】js动态添加dom,如何绑定事件

    首先要明白浏览器在加载页面的时候是按顺序来加载的,这样以来就很清楚了,js动态添加dom以后,这些dom并没有绑定事件,这个时候最简单的一个办法就是:将绑定事件的方法封装到一个函数A中,在动态添加完d ...

  5. 使用js动态添加组件

    在文章开始之前,我想说两点 1 自己初学js,文章的内容在大神看来可能就是不值一提,但是谁都是从hello world来的,望高   手不吝指教# 2 我知道这个标题起的比较蛋疼,大家看图就能说明问题 ...

  6. MUI 里js动态添加数字输入框后,增加、减少按钮无效

    numbox 的自动初化是在 mui.ready 时完成的mui 页面默认会自动初始化页面中的所有数字输入框,动态构造的 DOM 需要进行手动初始化.比如:您动态创建了一个 ID 为 abc 的数字输 ...

  7. 原生js动态添加style,添加样式

    原生js动态添加style,添加样式 第一种 var style="[assign-url='"+str+"']{display:initial}"; var ...

  8. Js动态添加复选框Checkbox

    Js动态添加复选框Checkbox的实例方法!!! 首先,使用JS动态产生Checkbox可以采用如下类似的语句: var checkBox=document.createElement(" ...

  9. js 动态添加表单 table tr

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. VB: 再次使用的体会

    放下VB已经有7.8年的时候了. 记得在上学的时候,一直迷恋着它,学了三年的VB,写了不少小软件. 到了工作之后,转到JAVA后,就一直没用VB. 这次的项目由于与系统的相关性高以及安装文件的大小有限 ...

  2. Java内存模型概念简单介绍,想深入自行百度

  3. 第一次使用Android Studio时你应该知道的一切配置(一)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  4. 【推荐】使用Ultrapico Expresso学习正则表达式

    Ultrapico Expresso是我工作中经常使用的一个非常强大的正则表达式构建.测试以及代码生成工具.它能够对你构建的正则表达式进行解析.验证,并输出解析结果,提供性能测试工具,支持C#.VB等 ...

  5. 泛型集合List(C#)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace List ...

  6. uwsgi多进程配合kafka-python消息无法发送

    在工作中,使用uwsgi部署项目,其中uwsgi设置为多进程,并且python中使用了kafka-python模块作为生产者不断产生数据,但上线不久后几乎所有的生产者消息都报:KafkaTimeout ...

  7. linux_shell使用

    一.hash命令 说明:linux系统下会有一个hash表,当你刚开机时这个hash表为空,每当你执行过一条命令时,hash表会记录下这条命令的路径,就相当于缓存一样.第一次执行命令shell解释器默 ...

  8. 函数和常用模块【day04】:函数介绍(一)

    本节内容 1.函数介绍 2.函数定义 3.为什么要使用函数 一.介绍 在我们以往的学习编程的过程当中,碰到的最多的两张编程方式或者说编程方法:面向过程和面向对象.其实不管是哪一种,其实都是编程的方法论 ...

  9. Python基础【day02】:字符串(四)

    在Python中字符串本身有带很多操作,字符串的特性,不可以被修改 0.字符串常用功能汇总 1.字符串的定义 #定义空字符串>>> name=''#定义非空字符串 >>& ...

  10. JAVA记录-maven JDK配置和常用操作

    1.pom.xml加入(JDK编译器配置) <build> <finalName>项目名</finalName> <plugins> <plugi ...