溫馨提示×

溫馨提示×

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

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

underscore中的find,map,each,sortBy,filter,chain的用法

發(fā)布時間:2020-07-19 09:56:46 來源:網(wǎng)絡(luò) 閱讀:1182 作者:oulafen 欄目:開發(fā)技術(shù)

前言


Underscore 是一個JavaScript實(shí)用庫,提供了類似Prototype.js (或 Ruby)的一些功能,但是沒有擴(kuò)展任何JavaScript內(nèi)置對象。它彌補(bǔ)了部分jQuery沒有實(shí)現(xiàn)的功能,同時又是Backbone.js必不可少的部分。

更詳細(xì)的解釋請參看http://www.css88.com/doc/underscore/


正文


下面只介紹一下在party_bid中用到的幾種函數(shù)


_.find的用法:遍歷列表,返回第一個符合條件的值

   示例        

var lists = [1, 2, 3, 4, 5, 6, 7, 8];
var b = _.find(lists, function (list) {
    return list % 2 == 0;
});  //b的值為2


_. filter的用法:顧明思意,過濾列表中所有符合條件的值,并返回一個新列表

   示例    

var lists = [1, 2, 3, 4, 5, 6, 7, 8];
var b = _.filter(lists, function (list) {
    return list % 2 == 0;
});  //b的值為[2,4,6,8]


_.each的用法:遍歷列表中的每一個元素,相當(dāng)于一個for循環(huán)

   示例

var lists = [1, 2, 3, 4, 5, 6, 7, 8];
_.each(lists, function (list) {
    return alert(list);
});  // 結(jié)果是從1到8依次警告


_.map的用法:遍歷列表進(jìn)行相應(yīng)操作,修改并返回原列表的值

   示例

var fruits = [{name: 'apple', price: 2}, {name: 'banana', price: 6} ];
_.map(fruits, function (fruit) {
    if (fruit.name == 'apple') {
        fruit.price = 4;
    }
    return fruit;
});  //fruits的值變?yōu)閇{name:apple,price:4},{name:banana,price:6}]


_.sortBy的用法:按某種元素排序,返回按序排好的新列表,不改變原列表的值

   示例

var fruits = [{name: 'apple', price: 2},{name: 'banana', price: 6}, {name: 'oringe', price: 1}];
var new_lists = _.sortBy(fruits, function (fruit) {
    return fruit.price;
}); /*new_lists = [{name: 'oringe', price: 1}, {name: 'apple', price: 2},{name: 'banana', price: 6 }] ,fruits不變*/


_.chain的用法:對同一列表進(jìn)行不同操作時用,按序執(zhí)行直到value

   示例

var lists = [3, 5, 1, 7, 4, 6, 2];
_.chain(lists)
    .filter(function(list){return list%2!=0;})
    .sortBy(function(list){return list;})
    .value()
//=>[1,3,5,7]



總結(jié)


第一次接觸underscore,挺好用,大大減少代碼量,還在學(xué)習(xí)中,望多多指正。



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI