首页  >  问答  >  正文

javascript - js数组键名为何不能用变量?我想像PHP那样使用变量作为关联数组键名该怎么做?

用键名就报错说无法set property

给我你的怀抱给我你的怀抱2663 天前1102

全部回复(8)我来回复

  • 習慣沉默

    習慣沉默2017-07-05 11:09:29

    JS 对象

    var o = {
        name: 'foo', 
        hey: 'bar'
    }
    console.log(o.name); 
    // => "foo"
    console.log(o['name']); 
    // => "foo"

    Map 对象

    上述普通的js对象只能用字符串做key,es6有个新特性,可以让“值”作为key 看例子:

    var m = new Map(); 
    
    var eczn = {
        name: 'eczn',
        age: 20
    }
    
    m.set(eczn, 'map Obj to Stirng'); 
    
    console.log(m); 

    回复
    0
  • 黄舟

    黄舟2017-07-05 11:09:29

    javascript中的数组不支持用数字以外的标识符做为数组的下标,但是你可以用对象来实现和php中关联数组相似的效果:

    var myArray = {'key1': 'value1'};
    console.log(myArray['key1']); // 会输出value1, 其实相当于myArray.key1

    回复
    0
  • 漂亮男人

    漂亮男人2017-07-05 11:09:29

    js数组用自定义键名,我做开发这么久没用过。 根本就用不着。 用Object 就行。

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-05 11:09:29

    可以的,比如说

    var person = {
        "name" : "孤月"
    };
    
    var n = "name";
    
    console.log(person[n]);
    //设置键名
    person[n] = "deep dark fantasy";

    回复
    0
  • 欧阳克

    欧阳克2017-07-05 11:09:29

    原始数组是不能用数字以外的字符作为键名的。可以用对象作为数组用来实现同样的功能。

    回复
    0
  • 为情所困

    为情所困2017-07-05 11:09:29

    定义时,数组只能通过数字作为index,比如,而其它类型的index呢,是对象了。这和php不一样的。

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-05 11:09:29

    js没有关联数组,只有基本的数组,长得像关联数组的是对象,这个js有。

    回复
    0
  • phpcn_u1582

    phpcn_u15822017-07-05 11:09:29

    js的数组可以用字符串来作下标,类似关联数组、js中数组下标的类型就是字符串

    回复
    0
  • 取消回复