js动态添加未知新属性
2024-08-27 01:35:17
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是带有 ’ ‘,’-‘ 等符号,不能直接使用’.‘操作符来访问。
最新文章
- ArcGIS10.2.1精简版、ArcGIS_Desktop10_Tutorial、破解文件等下载地址
- 关于Java中基本类型的长度相关基础知识
- 常用备份工具是mysql自带的mysqldump
- UITabBarButton 点击失效问题
- Android 动画详解
- css小技巧
- 关于 pgsql 数据库json几个函数用法的效率测试
- 去除Linq to Sql 查询结果中的空格
- MultiCardMenu
- sql常识-like
- Unity 打包后文件系统访问的一个小细节
- jQuery UI Datepicker&;Datetimepicker添加 时-分-秒 并且,判断
- Prerender.io - 预渲染架构,提高AngularJS SEO
- 微信小程序实现简易留言板
- linux内核数据结构之kfifo【转】
- git 提交的步骤
- C# 实现身份验证之WEB Service篇
- loadrunner&#160;场景设计-集合点设置
- [development][thrift] RPC框架 thrift
- Kali系列之multi/handler(渗透win7)