Javascript 获取数组元素的索引号

Javascript 获取数组元素的索引号,javascript,jquery,arrays,jquery-mobile,Javascript,Jquery,Arrays,Jquery Mobile,我有json,里面有一个对象数组。我构建页面依赖于此数组中的元素。若并没有被称为点的关键点的重复值,我将使用一些信息和描述呈现页面,使用点的值在数组中查找该元素。然而,如果我有两个或更多的重复值的关键点,我渲染这些元素的列表。在这种情况下,我不能使用点的值来查找数组中的元素。我知道我可以使用数组元素的索引号,然后将其作为参数传递给我的函数,该函数用于查找和构建信息和描述,但我不确定如何做到这一点。如何获取数组中元素的索引号 如果需要,p.S.可以提供我的代码 我正在使用的代码 var allRe

我有json,里面有一个对象数组。我构建页面依赖于此数组中的元素。若并没有被称为点的关键点的重复值,我将使用一些信息和描述呈现页面,使用点的值在数组中查找该元素。然而,如果我有两个或更多的重复值的关键点,我渲染这些元素的列表。在这种情况下,我不能使用点的值来查找数组中的元素。我知道我可以使用数组元素的索引号,然后将其作为参数传递给我的函数,该函数用于查找和构建信息和描述,但我不确定如何做到这一点。如何获取数组中元素的索引号

如果需要,p.S.可以提供我的代码

我正在使用的代码

var allRewards = null;
$("#reward").live('pagecreate', function(e) {
    var request = $.ajax({
        type: "GET",
        url: "example.com/test.json"
        dataType: "json",
        error: function (data, textStatus){
      console.log( "it`s error" );
      console.log( status );
      console.log( data );},
        success: function (data, textStatus){

        console.log( "success" );
        console.log( status );
        console.log( data );
         }
        })
        request.success(function(data, textStatus){
            var lis = "";
            var arr = [];
            var iter = 0;


            allRewards = data

            $.each(data.rewards, function(key, val){
                if ($.inArray(val.points, arr) == -1)
                    {
                        lis += "<div data-points='"+ val.points +"'align=CENTER class = 'rewards-block ui-block-" + String.fromCharCode(97 + iter%3) + "'><a href ='#' class ='ui-link-inherit' onclick='showreward("+val.points+")'><img src ='./img/reward-icon.png'/><span>" + val.points + "&nbsp;pts</span></a></div>";
                        arr.push(val.points);
                        iter +=  1;
                    }
            });
            $("#rewards_table").html(lis);

        })

      });

function showreward(point)
{   
    $.mobile.changePage('show-rewards.html')
    console.log(allRewards);
    $("#showrewards").live('pagecreate', function(e) {
                var items = "";
                var arr = [];
                var counter = 0;
                var result = $.grep(allRewards.rewards, function(e){ return e.points == point; });
                        if (result.length > 1)
                {
                    $.each(result, function(key, val){
                        items += "<div style='color:white;'>" + val.title + "</div>"
                        console.log(val.title);
                    })
                }
                else if (result.length == 1)
                { 

                    // $.each(result, function(key, val){
                    //                      items += "div style='color:white;'"+ val.points + "></div>"
                    //                      console.log(val.points);
                    //                  })
                    $.each(result, function(key, val){
                        items += "<div style='background:white; padding:5px 5px 20px 5px;'><img style ='float:right; width:45%; margin-top:22px; padding: 0 0 10px 10px;' src ='" + val.main_photo_url + "'/><h3>"+ val.title + "</h3><p>" + val.description + "</p><p style='font-weight:bold; font-size:13px;'>Reedem below for " + val.points + " Zingle Points</p><table class='pagemenu' style='width:200px;'><tr><td class='width_5'><input type='submit' data-theme='w' value='Reedem Now' data-inline='true'></td><td><a data-role='button' data-icon='pagemenu-share' data-iconpos='notext' href='index.html' data-shadow='false' data-corners='false'></a></td></tr></table></div>"
                    });
                }
                console.log(items);
                $("#rewards-list").html(items);

});

}
var allRewards=null;
$(“#奖励”).live('pagecreate',函数(e){
var请求=$.ajax({
键入:“获取”,
url:“example.com/test.json”
数据类型:“json”,
错误:函数(数据、文本状态){
log(“它的错误”);
控制台日志(状态);
console.log(数据);},
成功:功能(数据、文本状态){
控制台日志(“成功”);
控制台日志(状态);
控制台日志(数据);
}
})
请求成功(功能(数据、文本状态){
var lis=“”;
var-arr=[];
var-iter=0;
allRewards=数据
$.each(数据、奖励、功能(键、val){
如果($.inArray(val.points,arr)=-1)
{
lis+=”;
arr.push(val.points);
iter+=1;
}
});
$(“#奖励表”).html(lis);
})
});
功能显示奖励(点数)
{   
$.mobile.changePage('show-rewards.html'))
控制台日志(allRewards);
$(“#showrewards”).live('pagecreate',函数(e){
var项目=”;
var-arr=[];
var计数器=0;
var result=$.grep(allRewards.rewards,函数(e){returne e.points==point;});
如果(result.length>1)
{
$。每个(结果、函数(键、值){
项目+=“”+val.title+“”
控制台日志(val.title);
})
}
else if(result.length==1)
{ 
//$。每个(结果、函数(键、值){
//items+=“div style='color:white;”“+val.points+”>”
//控制台日志(val.points);
//                  })
$。每个(结果、函数(键、值){
items+=“”+val.title+“”+val.description+“

在下面重新定义“+val.points+”Zingle points

” }); } 控制台日志(项目); $(“#奖励列表”).html(项目); }); }
我想您正在寻找
数组.indexOf


注:这在下划线中显示为
\uxof

请提供一些添加的代码。在该代码中,我构建了一个包含信息和描述的页面,但不确定如何获取我需要的对象,如果我使用重复的key:points构建项目列表,您可以添加一个具有索引值的隐藏字段,这样您就可以通过使用
$(this).find('input[type=hidden]')。val()
您也可以将索引作为类或ID的一部分存储在parents div中。这是一个选项,但我没有研究我的json,它包含元素的唯一ID,通过它我可以访问任何元素。