91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript中數組排序sort不發生改變的解決方法

發布時間:2020-06-15 13:52:43 來源:億速云 閱讀:1063 作者:鴿子 欄目:web開發

最近在做一個項目,Ajax從后臺返回數據后,前端用js處理時,發現無論如何使用sort排序,最終要么是沒改變,要么只改變最后一次的排序,折騰了很久,最后查了查資料才發現,js中區分淺拷貝和深拷貝。

    var provinceConfirmedCount = data;
    var provinceDeadCount = data;
    var provinceCuredCount = data;

    provinceConfirmedCount.sort(sortBy(("provinceConfirmedCount")));
    provinceDeadCount.sort(sortBy(("provinceDeadCount")));
    provinceCuredCount.sort(sortBy(("provinceCuredCount")));

    console.log(provinceConfirmedCount); //不生效
    console.log(provinceDeadCount); //不生效
    console.log(provinceCuredCount); //生效

//比較數組對象
function sortBy(field) {
    return function(a,b) {
        return parseInt(b[field]) - parseInt(a[field]);
    }
}

淺拷貝、深拷貝與賦值

這三個的區別無法就是改變數據的時候,是如何改變,為了簡單明了,用一張表最快理解:


是否指向同一對象第一層為基本數據類型原數據中包含子對象
賦值會使原數據一同改變會使原數據一同改變
淺拷貝不會使原數據一同改變會使原數據一同改變
深拷貝不會使原數據一同改變不會使原數據一同改變

解決方案

既然知道了原理,這里的需求是需要全部改變,所以我們可以采用JQuery中的extend方法來處理:

    var provinceConfirmedCount = $.extend([], data);
    var provinceDeadCount = $.extend([], data);;
    var provinceCuredCount = $.extend([], data);;

    provinceConfirmedCount.sort(sortBy(("provinceConfirmedCount")));
    provinceDeadCount.sort(sortBy(("provinceDeadCount")));
    provinceCuredCount.sort(sortBy(("provinceCuredCount")));

    console.log(provinceConfirmedCount);
    console.log(provinceDeadCount);
    console.log(provinceCuredCount);

語法:$.extend( target, [object1], [objectN] )其中,target為目標類型,這里我用的是數組[],還可以是{},可根據實際情況處理。 從后面的[object1], [objectN]我們可以知道,extend是可以將多個待處理對象合并成一個目標類型的對象。

以上就是解決JavaScript中數組排序sort不發生改變的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

闽侯县| 涞源县| 嘉黎县| 古蔺县| 游戏| 阿坝县| 无棣县| 蓬莱市| 诏安县| 长宁区| 松潘县| 武邑县| 南澳县| 闻喜县| 武功县| 新沂市| 迁西县| 平舆县| 崇明县| 铜川市| 临沭县| 漳浦县| 阳西县| 邵阳市| 宁陕县| 虞城县| 偃师市| 安福县| 恩平市| 兰西县| 专栏| 湄潭县| 蕲春县| 吴旗县| 越西县| 崇左市| 卢湾区| 达孜县| 丽水市| 庄浪县| 瑞昌市|