码迷,mamicode.com
首页 > Web开发 > 详细

js动态添加未知新属性

时间:2018-02-06 18:20:43      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:array   wlan   length   var   val   eva   网卡   设备   实现   

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动态添加未知新属性

标签:array   wlan   length   var   val   eva   网卡   设备   实现   

原文地址:https://www.cnblogs.com/fanbi/p/8423152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!