javascript 根据关联数组键值从数组中查找值

标签 javascript jquery

我有一个关联数组:

var array1 = {
    a1: {
        id: "box1",
        title: "box 1"
    },
    a2: {
        id: "box2",
        title: "box 2"
    },
    a3: {
        id: "box3",
        title: "box 3"
    }
};

然后我有另一个数组,它引用第一个数组:

var array_order = ["a3:positionA", "a2:postitionB", "a1:positionC"];

我想循环第一个列表,然后使用第二个列表来查找位置文本

我正在使用 jQuery,所以我有

$.each(array1, function(i,o) {
  something in here where I can use i to find out what position. e.g. if a1 I would get positionC
}

最佳答案

更轻松、更快速地迭代 array_order 而不是 array1:

for( var i = 0, len = array_order.length; i < len; i++ ) {
    var ref = array_order[i].split(':');

    if( ref.length === 2 && ({}).hasOwnProperty.call( array1, ref[0] ) ) {
        var array1Property = array1[ ref[0] ];
        var array1PropertyPosition = ref[1];
    }
} 

也可以实现对 array1 属性的迭代,但速度要慢得多:

for( var prop in array1 )
    if( ({}).hasOwnProperty.call( array1, prop ) )
        for( var i = 0, len = array_order.length; i < len; i++ ) {
            var ref = array_order[i].split(':');
            if( ref.length === 2 && prop === ref[1] ) {
                var array1Property = array1[ prop ];
                var array1PropertyPosition = ref[1];
            }
        }

jQuery 中不需要。

关于javascript 根据关联数组键值从数组中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6043227/

相关文章:

javascript - 如何将表单从 html 发布到 php

javascript - 用 jquery 替换 html 标签

javascript - MongoDb : How to insert additional object into object collection?

javascript - 微优化: Returning from an inner block at the end of a function

javascript - 数字的条件(?)正则表达式

javascript - 如何通过javaScript获取新打开选项卡的URL

jQuery Ajax 调用 - 响应状态描述字符集

javascript - 页面刷新函数的回调

javascript - jQuery 数学不工作

javascript - Chrome 中带参数的 Jquery addEventListener