javascript - js数组键名为何不能用变量?我想像PHP那样使用变量作为关联数组键名该怎么做?
问题描述
用键名就报错说无法set property
问题解答
回答1:var o = { name: ’foo’, hey: ’bar’}console.log(o.name); // => 'foo'console.log(o[’name’]); // => 'foo'
上述普通的js对象只能用字符串做key,es6有个新特性,可以让“值”作为key 看例子:
var m = new Map(); var eczn = { name: ’eczn’, age: 20}m.set(eczn, ’map Obj to Stirng’); console.log(m);
javascript中的数组不支持用数字以外的标识符做为数组的下标,但是你可以用对象来实现和php中关联数组相似的效果:
var myArray = {’key1’: ’value1’};console.log(myArray[’key1’]); // 会输出value1, 其实相当于myArray.key1回答3:
js数组用自定义键名,我做开发这么久没用过。 根本就用不着。 用Object 就行。
回答4:可以的,比如说
var person = { 'name' : '孤月'};var n = 'name';console.log(person[n]);//设置键名person[n] = 'deep dark fantasy';回答5:
原始数组是不能用数字以外的字符作为键名的。可以用对象作为数组用来实现同样的功能。
回答6:定义时,数组只能通过数字作为index,比如,而其它类型的index呢,是对象了。这和php不一样的。
回答7:js没有关联数组,只有基本的数组,长得像关联数组的是对象,这个js有。
回答8:js的数组可以用字符串来作下标,类似关联数组、js中数组下标的类型就是字符串
相关文章:
1. angular.js - ng-grid 和tabset一起用时,grid width默认特别小2. html - 特殊样式按钮 点击按下去要有凹下和弹起的效果3. android有ldpi, mdpi, hdpi, xhdpi这些drawable文件夹,系统是依据什么去选择的?4. java - yuicompressor-maven-plugin 合并可用却不压缩, 哪配置不对?5. Java中的多人游戏。将客户端(玩家)连接到其他客户端创建的游戏6. android - textview在获取网络数据填充之后,占据的是默认的大小,点击之后才会包裹内容。7. Java 在内部类中访问变量。需要宣布为最终8. word-wrap该如何使用?9. angular.js - angularjs 与requirejs集成10. python - 我想把下面代码中的多余空白行去除该怎么做,如何用正则实现
