js动态添加未知新属性
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动态添加未知新属性的更多相关文章
- js动态添加onload、onresize、onscroll事件(另类方法)
js动态添加onload.onresize.onscroll事件(另类方法) window 的 onload.onresize.onscroll 事件,跟其他的事件不一样,它不能用 attachE ...
- 原生JS动态添加和删除类
原生JS动态添加和删除类 由于需要, 给按钮组监听点击事件(要求用事件委托),当有一个按钮被点击时,相应的给该按钮添加一个类(激活类),其他没有点击的按钮就要移出该类 添加和和删除类有三种方法 首先等 ...
- form表单 无法提交js动态添加的表单元素问题。。
第一种情况, 这种情况js动态添加的表单元素是不能提交到服务器端的 <table> <form method="post" action=" url ...
- 【原生js】js动态添加dom,如何绑定事件
首先要明白浏览器在加载页面的时候是按顺序来加载的,这样以来就很清楚了,js动态添加dom以后,这些dom并没有绑定事件,这个时候最简单的一个办法就是:将绑定事件的方法封装到一个函数A中,在动态添加完d ...
- 使用js动态添加组件
在文章开始之前,我想说两点 1 自己初学js,文章的内容在大神看来可能就是不值一提,但是谁都是从hello world来的,望高 手不吝指教# 2 我知道这个标题起的比较蛋疼,大家看图就能说明问题 ...
- MUI 里js动态添加数字输入框后,增加、减少按钮无效
numbox 的自动初化是在 mui.ready 时完成的mui 页面默认会自动初始化页面中的所有数字输入框,动态构造的 DOM 需要进行手动初始化.比如:您动态创建了一个 ID 为 abc 的数字输 ...
- 原生js动态添加style,添加样式
原生js动态添加style,添加样式 第一种 var style="[assign-url='"+str+"']{display:initial}"; var ...
- Js动态添加复选框Checkbox
Js动态添加复选框Checkbox的实例方法!!! 首先,使用JS动态产生Checkbox可以采用如下类似的语句: var checkBox=document.createElement(" ...
- js 动态添加表单 table tr
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- A1075. PAT Judge
The ranklist of PAT is generated from the status list, which shows the scores of the submittions. Th ...
- A1089. Insert or Merge
According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and gr ...
- 【洛谷P1072】Hankson 的趣味题
题目大意:给定四个数字 a,b,c,d,求满足 \(gcd(a,x)=b,lcm(c,x)=d\) 的 x 的个数. 题解: 解法1:根据 lcm 的性质,x 一定为 d 的约数.因此,直接枚举 d ...
- csp20151203画图 解题报告和易错地方
Solution: dfs 对于dfs: //遇到map[u][v]==c,则不用再搜 //因为通过(u,v)到达的其它点(p,q), //之前从(u,v)开始肯定能到达(p,q),(p, ...
- hdu 4685(强连通分量+二分图的完美匹配)
传送门:Problem 4685 https://www.cnblogs.com/violet-acmer/p/9739990.html 参考资料: [1]:二分图的最大匹配.完美匹配和匈牙利算法 [ ...
- java基础基础总结----- 常用了解java(二)
一.Java的发展历史 1998年,Java 2 Platform J2SE.J2ME.J2EE 2005年,Java10周年,重新命名: J2SE → Java SE → Standard Edit ...
- GO语言的进阶之路-面向过程式编程
GO语言的进阶之路-面向过程式编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们在用Golang写一个小程序的时候,未免会在多个地方调用同一块代码,这个时候如何优化你的代码呢 ...
- C#获取Html中的图片元素路径
使用Ueditor的时候把文章以HTML标签的方式存在数据库中,同时还要将文章的第一张图片的路径一并存入数据库,所以就需要在Html中获取第一个图片的路径,没有图片的话设置一个默认的图片.代码如下: ...
- IDEA中导入多个包自动合并为星号
IDEA中导入同一个包下的几个class会自动合并为星号,如下图.可以通过设置让其不自动合并为星号. 1.选择File→Settings→Editor→Code style→Java,再点击右边的Im ...
- 在windows中停止mysql提示:'服务正在启动或停止中,请稍候片刻后再试一次'
发现mysql的windows服务异常,准备卸载并重新注册服务,输入: mysqld --remove MySQL 提示: 发现卸载不掉这个服务,于是找到MySQL服务的pid sc queryex ...