Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将项目存储在数组中,以后再使用它们_Javascript_Jquery_Ajax_Arrays_Json - Fatal编程技术网

Javascript 将项目存储在数组中,以后再使用它们

Javascript 将项目存储在数组中,以后再使用它们,javascript,jquery,ajax,arrays,json,Javascript,Jquery,Ajax,Arrays,Json,我有代码,它从服务器获取json文件,然后在页面上呈现它的一些元素。在这段代码中,我还跳过了关键点值重复的项目。我的问题是,我如何将这些跳过的项目存储在某个地方,这样,如果我单击有重复项的项目,它会将我链接到其他页面,其中包含这些重复项的列表? 这是我的密码 var request = $.ajax({ type: "GET", url: "example.com/rewards.json" dataType: "json", error: function (data,

我有代码,它从服务器获取json文件,然后在页面上呈现它的一些元素。在这段代码中,我还跳过了关键点值重复的项目。我的问题是,我如何将这些跳过的项目存储在某个地方,这样,如果我单击有重复项的项目,它会将我链接到其他页面,其中包含这些重复项的列表? 这是我的密码

var request = $.ajax({
type: "GET",
    url: "example.com/rewards.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;

            $.each(data.rewards, function(key, val){
                if ($.inArray(val.points, arr) == -1)
                    {
                        lis += "<div class = 'ui-block-" + String.fromCharCode(97 + iter%3) + "'><a href ='#' class ='ui-link-inherit'>" + val.points + "</a></div>";
                        arr.push(val.points);
                        iter +=  1;
                    }
            });
            $("#rewards_table").html(lis);
        })
var请求=$.ajax({
键入:“获取”,
url:“example.com/rewards.json”
数据类型:“json”,
错误:函数(数据、文本状态){
log(“它的错误”);
控制台日志(状态);
console.log(数据);},
成功:功能(数据、文本状态){
控制台日志(“成功”);
控制台日志(状态);
控制台日志(数据);
}
})
请求成功(功能(数据、文本状态){
var lis=“”;
var-arr=[];
var-iter=0;
$.each(数据、奖励、功能(键、val){
如果($.inArray(val.points,arr)=-1)
{
lis+=”;
arr.push(val.points);
iter+=1;
}
});
$(“#奖励表”).html(lis);
})

对我想要的东西的描述可能会有点混乱,所以请随意问我任何问题。你只需要做的就是:将它们存储在某个地方供以后使用

例如,将这一行放在代码的顶部:

var duplicates = [];
…并将此
else
添加到
$中的
if
。每个
迭代器函数:

else
   {
   duplicates.push(val.points);
   }
(我想我很了解你的支撑风格,对我来说有点陌生。:-)


以上假设您的所有代码都保存在某种包含函数中,以避免创建全局,因此
副本
(如您现有的
请求
变量)不会最终成为全局变量。

您是否希望保留数组以备将来使用?我认为一个具体的示例会有所帮助。也就是说,显示一些示例数据,例如结构,以及“其他页面”的外观。我不太明白如何将新数组与呈现的重复项链接。我是否需要为每个重复的项目创建新数组?@sannySin:在您现有的代码中,您正在根据
val.points
的值“链接”它们。因此,如果渲染元素具有给定的
val.points
值(元素
a
的文本),并且在
duplicates
中有一个匹配的
val.points
值,则链接它们。不,您不需要为每个重复项使用不同的数组,只需要一个包含所有重复项的数组。如果您需要
val
中的其他信息,请存储
val
而不是
val.points
,然后使用
$搜索数组。每个
而不是
$。inaray
(将您拥有的
points
值与每个条目的
points
属性进行比较)。