首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在JavaScript中存储key=>value数组的最佳方式是什么?

在JavaScript中存储key=>value数组的最佳方式是什么?
EN

Stack Overflow用户
提问于 2009-07-17 17:36:15
回答 4查看 896.4K关注 0票数 315

在javascript中存储key=>value数组的最好方法是什么,该方法如何循环?

每个元素的键应该是一个标签,比如{id}或者仅仅是id,值应该是id的数值。

它应该是现有javascript类的元素,或者是可以通过类轻松引用的全局变量。

可以使用jQuery。

EN

回答 4

Stack Overflow用户

发布于 2009-07-17 17:41:01

如果我没理解错的话:

代码语言:javascript
复制
var hash = {};
hash['bob'] = 123;
hash['joe'] = 456;

var sum = 0;
for (var name in hash) {
    sum += hash[name];
}
alert(sum); // 579
票数 115
EN

Stack Overflow用户

发布于 2017-08-02 17:40:02

在javascript中,键值数组被存储为对象。在javascript中有数组这样的东西,但它们在某种程度上仍然被认为是对象,请检查这个家伙的答案- Why can I add named properties to an array as if it were an object?

数组通常使用方括号语法,对象("key=>value“数组)使用花括号语法,尽管您可以使用方括号语法访问和设置对象属性,如Alexey Romanov所示。

javascript中的数组通常只与数字的、自动递增的键一起使用,但是javascript对象可以保存命名的键值对、函数甚至其他对象。

简单数组,例如。

代码语言:javascript
复制
$(document).ready(function(){

    var countries = ['Canada','Us','France','Italy'];
    console.log('I am from '+countries[0]);
    $.each(countries, function(key, value) {
        console.log(key, value);
    });

});

输出-

0“加拿大”

1“我们”

2“法国”

3“意大利”

我们在上面看到,我们可以使用jQuery.each函数循环一个数字数组,并使用带有数字键的方括号在循环外部访问信息。

简单对象(json)

代码语言:javascript
复制
$(document).ready(function(){

    var person = {
        name: "James",
        occupation: "programmer",
        height: {
            feet: 6,
            inches: 1
        },
    }

    console.log("My name is "+person.name+" and I am a "+person.height.feet+" ft "+person.height.inches+" "+person.occupation);

    $.each(person, function(key, value) {
        console.log(key, value);
    });

});

输出-

我叫詹姆斯,身高6英尺1英寸的程序员

姓名:詹姆斯

职业程序员

高度对象{英尺: 6,英寸: 1}

在php这样的语言中,这将被认为是具有键值对的多维数组,或者是数组中的数组。我假设,因为您询问了如何遍历键值数组,所以您可能想知道如何获得像上面的person对象这样的对象(key=>value数组)来拥有多个person。

好吧,既然我们知道javascript数组通常用于数字索引,而对象更灵活地用于关联索引,我们将一起使用它们来创建一个可以循环的对象数组,如下所示-

JSON数组(对象数组)-

代码语言:javascript
复制
$(document).ready(function(){

    var people = [
        {
            name: "James",
            occupation: "programmer",
            height: {
                feet: 6,
                inches: 1
            }
        }, {
            name: "Peter",
            occupation: "designer",
            height: {
                feet: 4,
                inches: 10
            }
        }, {
            name: "Joshua",
            occupation: "CEO",
            height: {
                feet: 5,
                inches: 11
            }
        }
    ];

    console.log("My name is "+people[2].name+" and I am a "+people[2].height.feet+" ft "+people[2].height.inches+" "+people[2].occupation+"\n");

    $.each(people, function(key, person) {
        console.log("My name is "+person.name+" and I am a "+person.height.feet+" ft "+person.height.inches+" "+person.occupation+"\n");
    });

});

输出-

我的名字是Joshua,我是一个5英尺11英寸的CEO

我叫詹姆斯,身高6英尺1英寸的程序员

我叫彼得,我是一个4英尺10英寸的设计师。

我的名字是Joshua,我是一个5英尺11英寸的CEO

注意,在循环外部,我必须使用带有数字键的方括号语法,因为这现在是一个数字索引的对象数组,当然在循环内部,数字键是隐含的。

票数 16
EN

Stack Overflow用户

发布于 2019-09-16 21:19:47

数组中的对象:

代码语言:javascript
复制
var cars = [
        { "id": 1, brand: "Ferrari" }
        , { "id": 2, brand: "Lotus" }
        , { "id": 3, brand: "Lamborghini" }
    ];
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1144705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档