我有一个关联数组:
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/