首頁  >  問答  >  主體

javascript - js數組鍵名為何不能用變數?我想像PHP那樣使用變數作為關聯數組鍵名該怎麼做?

用鍵名就報錯說無法set property

#
给我你的怀抱给我你的怀抱2663 天前1101

全部回覆(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
  • 取消回覆