我正在尝试在多维对象中动态查找特定值。
要创建对象,我这样做:
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);
输出如下:
我要做的是比较另一个变量值,例如:
var currentPos = '3038';
匹配任何对象键。例如。 3038或2038等。
我正在努力想出这个!
答案 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
}
}
你可以给我一些正确的代码,告诉我如何将值放到控制台日志中,这样我就可以根据你的问题正确编辑答案