Javascript对象运行时更改

时间:2015-01-05 14:40:47

标签: javascript jquery ajax

好的,我认为我的问题是一个常见的Javascript事情 A有一个简单的ajax调用,成功回调 ajax调用返回产品列表。现在我需要按照Id排序并按日期排序的这些产品的列表。

产品列表包含如下对象:

{
    Id: 12345,
    LastModified: "2015-01-05T14:53:18.493Z",
    Name: "Beer"
}

以下是我的示例代码:

var prodsAll; 
var prodsNew;

$.ajax({
    url:"getProds.php",  
    success:function(res) {

        prodsAll= res;
        prodsNew = res;

        prodAll.sort(function (a, b) {
            return a.Id > b.Id ? 1 : -1;
        });

        prodNew.sort(function (a, b) {
            return new Date(b.LastModified).getTime() - new Date(a.LastModified).getTime();
        });


    }
});

无论我做什么,看起来我的所有名单都改变了!? 当我这样做时:

console.log(res);
console.log(prodsAll);
console.log(prodsNew);

我总是得到相同的结果: - /
如何独立更改列表呢?

1 个答案:

答案 0 :(得分:2)

这是问题

prodsAll= res;
prodsNew = res;

它们与单个数组具有相同的引用,您可以像这样制作一个新的副本

prodsAll = res;
prodsNew = res.slice();