繁体   English   中英

具有命名索引的多维关联数组

[英]Multi-dimensional associative array with named index

花了一些时间并用谷歌搜索,但我似乎无法用Javascript实现:

PHP:

$items['01A']['price'] = "$30";
$items['01A']['description'] = "Description1";

$items['02B']['price'] = "$60";
$items['02B']['description'] = "Description2";

输出:

Array
(
    [01A] => Array
        (
            [price] => $30
            [description] => Description1
        )

    [02B] => Array
        (
            [price] => $60
            [description] => Description2
        )

)

好吧,我可以这样:

var obj = {
    '0113A5' : {
        'price' : '1200',
        'discount' : '5'
    },
    '0213A5' : {
        'price' : '1800',
        'discount' : '0'
    }
};

...但是无法在外观内分配值,因为:

obj['0313A5']['price'] = "2000";
//or
obj.0313A5.price = "2000";

...引发错误。

您需要先创建空对象,然后再为其分配属性,例如

var obj = {};

obj['0113A5'] = {};
obj['0113A5'].price = '1200';
obj['0113A5'].discount = '5';


obj['0213A5'] = {};
obj['0213A5'].price = '1800';
obj['0213A5'].discount = '0';

var obj = {
            '0113A5' : {
                'price' : '1200',
                'discount' : '5'
            },
            '0213A5' : {
                'price' : '1800',
                'discount' : '0'
            }
        };

obj['0113A5']['discount'] = '222';
alert(obj['0113A5']['discount']);

obj['0113A5'].discount = '333';
alert(obj['0113A5']['discount']);

是有效的。

http://jsfiddle.net/9jq5esg2/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM