最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue給數(shù)組中對象排序 sort函數(shù)的用法

 更新時間:2022年09月22日 11:06:57   作者:前端程序猿之路  
這篇文章主要介紹了vue給數(shù)組中對象排序 sort函數(shù)的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vue給數(shù)組中對象排序 sort函數(shù)

開發(fā)穿梭框的時候,需要將左側(cè)選中的數(shù)據(jù)排序后添加到右側(cè)

先看代碼吧,后面解釋

originalData為左側(cè)選擇的數(shù)據(jù):

var originalData =[{name: 'Tom'},{name: 'Andy'},{name: 'Marry'},{name: 'Tina'}];

先給每個對象添加一個排序order:

for (let i = 0; i < originalData.length; i++) {
     this.originalData[i]['order'] = i
}

添加后為:

var originalData =[{name: 'Tom',order: 1},{name: 'Andy',order: 2},{name: 'Marry',order: 3},{name: 'Tina',order: 4}];

寫一個排序函數(shù):

arraySort(property) {
            return function (a, b) {
                var value1 = a[property]
                var value2 = b[property]
                return value1 - value2
            }
        }

在進行添加的時候排序:originalData.sort(arraySort('order'))

sort函數(shù)要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數(shù)字。

比較函數(shù)應(yīng)該具有兩個參數(shù) a 和 b,其返回值如下:

  • 若 a 小于 b,在排序后的數(shù)組中 a 應(yīng)該出現(xiàn)在 b 之前,則返回一個小于 0 的值。
  • 若 a 等于 b,則返回 0。
  • 若 a 大于 b,則返回一個大于 0 的值。

舉例:

var originalData =[{name: 'mingxin',order: 6},{name: 'wanglin',order: 1},{name: 'jiangxia',order:8},{name: 'liufang',order: 4},{name: 'wangha',order: 1},{name: 'liming',order: 7}];
function arraySort(property){
    return function (a, b) {
        var value1 = a[property];
        var value2 = b[property];
        if(value1 - value2>0){
            console.log(value1+"大于"+value2+"調(diào)換位置")
        }else if(value1 - value2<0){
            console.log(value1+"小于"+value2+"位置不變")
        }else{
            console.log(value1+"等于"+value2+"位置不變")
        }
        return value1 - value2
    }
};
originalData.sort(arraySort('order'))

運行結(jié)果如下:

vue小技巧:簡單排序和對象排序

對于數(shù)組里面全是number

computed部分:

computed:{
? ? sortItems:function(){
? ? return this.items.sort(sortNumber);
? ? }
?}

methods部分

function sortNumber(a,b){
? ? ? ? ? ? return a-b
? }

對于一個對象 有多種類型

data部分

students:[
? {name:'jspang',age:32},
? {name:'Panda',age:30},
? {name:'PanPaN',age:21},
? {name:'King',age:45}
]

methods部分

function sortByKey(array,key){
? ? return array.sort(function(a,b){
? ? ? var x=a[key];
? ? ? var y=b[key];
? ? ? return ((x<y)?-1:((x>y)?1:0));
? ?});
}

view部分

<ul>
? ?<li v-for="student in students">
? ? ? ?{{student.name}} - {{student.age}}
? ?</li>
</ul>

computed部分

sortStudent:function(){
? ? ?return sortByKey(this.students,'age');
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • Vue利用dayjs封裝實現(xiàn)時間實時刷新

    Vue利用dayjs封裝實現(xiàn)時間實時刷新

    Day.js庫本身專注于簡化JavaScript日期和時間的操作,它的API設(shè)計直觀,且功能強大,可以方便地格式化日期、添加或減去時間間隔、比較日期等,本文主要介紹了Vue利用dayjs封裝實現(xiàn)時間實時刷新,需要的朋友可以參考下
    2024-07-07
  • element表格去掉表頭的實現(xiàn)方法

    element表格去掉表頭的實現(xiàn)方法

    本文主要介紹了element表格去掉表頭的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • vue 導(dǎo)出文件,攜帶請求頭token操作

    vue 導(dǎo)出文件,攜帶請求頭token操作

    這篇文章主要介紹了vue 導(dǎo)出文件,攜帶請求頭token操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 非Vuex實現(xiàn)的登錄狀態(tài)判斷封裝實例代碼

    非Vuex實現(xiàn)的登錄狀態(tài)判斷封裝實例代碼

    這篇文章主要給大家介紹了關(guān)于非Vuex實現(xiàn)的登錄狀態(tài)判斷封裝的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-02-02
  • 基于Vant UI框架實現(xiàn)時間段選擇器

    基于Vant UI框架實現(xiàn)時間段選擇器

    這篇文章主要為大家詳細介紹了基于Vant UI框架實現(xiàn)時間段選擇器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • vue使用反向代理解決跨域問題方案

    vue使用反向代理解決跨域問題方案

    這篇文章主要為大家介紹了vue使用反向代理解決跨域問題方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • vue-cli 3.x配置跨域代理的實現(xiàn)方法

    vue-cli 3.x配置跨域代理的實現(xiàn)方法

    這篇文章主要介紹了vue-cli 3.x配置跨域代理的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Vue使用Pinia輕松實現(xiàn)狀態(tài)管理

    Vue使用Pinia輕松實現(xiàn)狀態(tài)管理

    pinia,一個基于Vue3的狀態(tài)管理庫,它可以幫助開發(fā)人員管理Vue應(yīng)用程序的狀態(tài),本文主要為大家介紹了Pinia的用法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-06-06
  • Vue?項目中選擇?TSX?而非傳統(tǒng)?.vue?文件的原因分析

    Vue?項目中選擇?TSX?而非傳統(tǒng)?.vue?文件的原因分析

    文章探討了Vue項目中使用TSX(TypeScript?JSX)的背景、優(yōu)勢和局限性,TSX結(jié)合了TypeScript和JSX,增強了類型安全和代碼組織性,但也增加了學(xué)習(xí)曲線和可讀性問題,對于復(fù)雜應(yīng)用,TSX提供了更大的靈活性和類型支持,逐漸成為一些開發(fā)者的選擇
    2024-11-11
  • Avue實現(xiàn)動態(tài)查詢與數(shù)據(jù)展示的示例代碼

    Avue實現(xiàn)動態(tài)查詢與數(shù)據(jù)展示的示例代碼

    Avue是一個基于Vue.js的前端框架,它是由阿里云開發(fā)的一款企業(yè)級UI組件庫,旨在提供一套全面、易用且高性能的界面解決方案本文介紹了Avue實現(xiàn)動態(tài)查詢與數(shù)據(jù)展示的示例,需要的朋友可以參考下
    2024-08-08

最新評論

松原市| 蚌埠市| 三门峡市| 兰西县| 二连浩特市| 沂水县| 玛纳斯县| 江阴市| 义乌市| 伊川县| 成安县| 五指山市| 饶河县| 阳高县| 红原县| 万全县| 会宁县| 瑞丽市| 东海县| 铜梁县| 韩城市| 奉贤区| 洛宁县| 池州市| 咸阳市| 辽阳县| 启东市| 九江县| 万州区| 枣阳市| 汉中市| 广安市| 柳江县| 隆昌县| 淅川县| 南陵县| 赤城县| 五家渠市| 东城区| 天气| 湟源县|