在多维对象Javascript中查找值

时间:2014-10-15 16:07:34

标签: javascript jquery object multidimensional-array

我正在尝试在多维对象中动态查找特定值。

要创建对象,我这样做:

var inViewElements = {};

$('.story-section')
    .each(
        function(index){

            var sectionId = 'story-section-' + Math.floor(Math.random() * (1000 - 1 + 1)) + 1;

            $(this).attr('id', sectionId);

            var inViewHeight = $(this).height(),
                inViewPosTop = $('#' + sectionId).offset().top,
                inViewPosBottom = ((inViewPosTop + inViewHeight) - (inViewTolerence + inViewHeight));

            inViewElements[inViewPosTop] = {
                id: sectionId,
                height: inViewHeight,
                bottom: inViewPosBottom
            }; 

            debug('Inview', 'Object', sectionId);                                       
            debug('Inview', 'Height', inViewHeight);
            debug('Inview', 'Offset Top', inViewPosTop);
            debug('Inview', 'Offset Bottom', inViewPosBottom);

        }
    );

console.log(inViewElements);

输出如下:

enter image description here

我要做的是比较另一个变量值,例如:

var currentPos = '3038';

匹配任何对象键。例如。 3038或2038等。

我正在努力想出这个!

2 个答案:

答案 0 :(得分:0)

您是否正在尝试搜索包含特定值的对象?

无法在Javascript中查询数组/对象。由于您没有使用增量索引,我建议使用foreach循环,使用条件语句检查您尝试匹配的属性是否等于您要查找的值。 / p>

使用for循环会更快,但这需要增量索引。

答案 1 :(得分:0)

如果您记录了响应变量,那么您可以使用此函数

for(var x in response){
    if( x == 3038) {
        // do something
    }
}

for(var x in response){
    if(x == currentPos){
         //dosomething
    }
 }

你可以给我一些正确的代码,告诉我如何将值放到控制台日志中,这样我就可以根据你的问题正确编辑答案