【问题标题】:js adding a value to a element in an arrayjs向数组中的元素添加值
【发布时间】:2009-11-23 11:49:40
【问题描述】:

我找到了一些类似问题的答案,但我仍然没有得到它。

但我希望这是一个短暂的问题,所以我不会太麻烦! ;-)

我有一个js数组

arr = [ a, b, c]

如何动态地为这些元素添加价值?例如,我希望每个元素都获得值 true

所以之后应该是这样的:

arr = [ a = true, b = true, c = true];

我尝试了以下方法:(使用 jquery 框架)

$.each(arr, function(i){
                arr[i] = true;
            });

然后我就明白了

arr = [ true, true, true]

希望有人可以帮助我! 谢谢

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:
    arr = [ a = true, b = true, c = true];
    

    这是您正在寻找的不同类型的数据结构:不是数组,而是映射。 (PHP 使数组和映射具有相同的数据类型,但这是一个不寻常的怪癖。)

    在 JavaScript 中并没有一个通用的映射,但只要您使用字符串作为键并且注意避免使用一些内置的 JavaScript 对象成员名称,您就可以使用对象:

    var map= {'a': true, 'b': true, 'c': true};
    alert(map['a']); // true
    alert(map.a); // true
    

    预计到达时间:

    如果我有一个数组,如何使它看起来像 ["required": true, "checklength": true]?

    var array= ['required', 'checklength'];
    
    var mapping= {};
    for (var i= array.length; i-->0;) {
        var key= array[i];
        mapping[key]= true;
    }
    
    alert(mapping.required); // true
    alert('required' in mapping); // also true
    alert('potato' in mapping); // false
    

    【讨论】:

    • 为了 OP 和其他新手的利益,请注意,使用此方法时,没有您习惯使用普通索引数组的 length 属性。此外,必须使用 for..in (w3schools.com/jS/js_loop_for_in.asp) 对这种数据类型进行迭代,而不是使用标准 for 结构 (w3schools.com/jS/js_loop_for.asp) 对数组进行迭代。
    • 嘿。谢谢,但我仍然不知道如何为元素添加值,如上所述。你只是告诉我如何设置一个具有直接值的对象..但是如果我有一个数组(或对象......)所以[“required”,“checklength”](萤火虫)我怎样才能让它看起来像[ “必需”:真,“检查长度”:真]?也许我的英语不够好,无法清楚地描述它! :-(
    • JS 中带有命名键的数组是一个对象。他回答了你的问题。
    猜你喜欢
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多