js动态添加未知新属性

Posted unionline

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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动态添加未知新属性的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中创建新的未知或动态/扩展对象

用原生js怎么动态添加一个js文件

js怎样添加、移除、移动、复制、创建和查找节点?

js学习-动态添加修改删除对象的属性和方法

AJAX相关JS代码片段和部分浏览器模型

css常用代码片段 (更新中)