JS/Jquery 中怎么定义存储一个类似map中key-value形式的变量,并且怎样动态赋值key和value?
注意:在javascript语言中,key的值只能是字符串,不能是其它的。
在javascript中,对象本身就是一种Map结构。
var map = {};
map['key1'] = 1;
map['key2@'] = 2;
console.log(map['key1']);//结果是1.
console.log(map['key2@']);//结果是2.
//如果遍历map
for(var prop in map){
if(map.hasOwnProperty(prop){
console.log('key is ' + prop +' and value is' + map[prop]);
}
}
动态的赋值key:
var key1 = '动态key1';
var key2 = '动态key2';
var map = {};
map[key1] = 1;
map[key2] = 2;
console.log(map[key1]);//结果是1.
console.log(map[key2]);//结果是2.
//如果遍历map
for(var prop in map){
if(map.hasOwnProperty(prop){
console.log('key is ' + prop +' and value is' + map[prop]);
}
}
扩展资料
JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。
直译语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而其解决办法就是于使用try{}catch(){}︰
console.log("a");//这是正确的
console.log("b");//这是正确的
console.logg("c");//这是错误的,并且到这里会停下来
console.log("d");//这是正确的
console.log("e");//这是正确的
/*解决办法*/
try{console.log("a");}catch(e){}//这是正确的
try{console.log("b");}catch(e){}//这是正确的
try{console.logg("c");}catch(e){}//这是错误的,但是到这里不会停下来,而是跳过
try{console.log("d");}catch(e){}//这是正确的
try{console.log("e");}catch(e){}//这是正确的
Javascript被归类为直译语言,因为主流的引擎都是每次运行时加载代码并解译。
V8是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey会将解译过的指令暂存,以提高性能,称为实时编译)。
但由于V8的核心部份多数用Javascript撰写(而SpiderMonkey是C++)。因此在不同的测试上,两者性能互有优劣。
与其相对应的是编译语言,例如C语言,以编译语言编写的程序在运行之前,必须经过编译,将代码编译为机器码,再加以运行。
参考资料来源:百度百科:javascript
var map={
key1:'abc',
key2:'def'
};
这样定义即可。动态赋值如下:
map.key3='12';
如果key也是动态的,则如下处理
var key='key4';
map[key]='34';
注意:在javascript语言中,key的值只能是字符串,不能是其它的。
var map={key1:value1,key2:value2........};
赋值可以
map.key1=..或者map["key1"]=...
marp.key2=...或者map["key2"]=...
但是key值也不是确定的,也是变量。
var map={};
map.push('key1');
map[key1].push('value1'); 可以这样动态的赋值么?
push应该是数组中的方法,json不能用的,你直接var map=new Object();
然后就可以动态添加属性了
比如
map.key1=...
map.key2=..
key1和key2可以随便取什么都可以
在javascript中,对象本身就是一种Map结构。
var map = {};
map['key1'] = 1;
map['key2@'] = 2;
console.log(map['key1']);//结果是1.
console.log(map['key2@']);//结果是2.
//如果遍历map
for(var prop in map){
if(map.hasOwnProperty(prop)){
console.log('key is ' + prop +' and value is' + map[prop]);
}
}
我需要动态的赋值key,要怎么做?
var key1 = '动态key1';
var key2 = '动态key2';
var map = {};
map[key1] = 1;
map[key2] = 2;
console.log(map[key1]);//结果是1.
console.log(map[key2]);//结果是2.
//如果遍历map
for(var prop in map){
if(map.hasOwnProperty(prop)){
console.log('key is ' + prop +' and value is' + map[prop]);
}
}
var arr = [{'compyID':'1', 'company':'总公司','name':'smf','order':'985433'},{'compyID':'2365','company':'上海分公司','name':'smf','order':'985433'}];
var arrd = [];
var obj = new Object();
for(var i=0;i<arr.length;i++){
var compyid =arr[i].compyID;
var company =arr[i].company;
/*
//这是错的一种变量赋值,在javascript语言中,key的值只能是字符串,不能是其它的。
obj = {
compyid:company
}
arrd.push(obj);
*/ //应该这样
obj[compyid] = company;
}
alert(JSON.stringify(obj))
var value = obj['1'];
alert(value)