国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

你并不需要Underscore/Lodash

Mr_houzi / 1261人閱讀

摘要:將某個列表中的元素映射到新的列表中。判斷序列中是否存在元素滿足給定方程的條件。用來查找數組中某指定元素的索引如果找不到指定的元素則返回返回指定值在字符串對象中首次出現的位置。創建一個在經過了指定計數器之后才會被調用的方程。

You don"t (may not) need Lodash/Underscore

Lodash 和 Underscore 是非常優秀的當代JavaScript的工具集合框架,它們被前端開發者廣泛地使用。但是,當我們現在是針對現代化瀏覽器進行開發時,很多時候我們利用的Underscore中的方法已經被ES5與ES6所支持了,如果我們希望我們的項目盡可能地減少依賴的話,我們可以根據目標瀏覽器來選擇不用Lodash或者Underscore。

開發者的聲音

Make use of native JavaScript object and array utilities before going big.
Cody lindley, Author of jQuery Cookbook,JavaScript Enlightenment

You probably don"t need Lodash. Nice List of JavaScript methods which you can use natively.
Daniel Lamb, Computer Scientist, Technical Reviewer of Secrets of the JavaScript Ninja, Functional Programming in JavaScript

I guess not, but I want it.
Tero Parviainen, Author of build-your-own-angular

I"ll admit, I"ve been guilty of overusing #lodash. Excellent resource.
therebelrobot, Maker of web things, Facilitator for Node.js/io.js

Quick links

_.each

_.map

_.every

_.some

_.reduce

_.reduceRight

_.filter

_.find

_.findIndex

_.indexOf

_.lastIndexOf

_.includes

_.keys

_.size

_.isNaN

_.reverse

_.join

_.toUpper

_.toLower

_.trim

_.repeat

_.after

_.each

遍歷一系列的元素,并且調用回調處理方程。
Iterates over a list of elements, yielding each in turn to an iteratee function.

// Underscore/Lodash
_.each([1, 2, 3], function(value, index) {
  console.log(value);
});
// output: 1 2 3

// Native
[1, 2, 3].forEach(function(value, index) {
  console.log(value);
});
// output: 1 2 3
Browser Support
? 1.5 ? 9 ? ? ?

? back to top

_.map

將某個列表中的元素映射到新的列表中。

// Underscore/Lodash
var array1 = [1, 2, 3];
var array2 = _.map(array1, function(value, index) {
  return value*2;
});
console.log(array2);
// output: [2, 4, 6]

// Native
var array1 = [1, 2, 3];
var array2 = array1.map(function(value, index) {
  return value*2;
});
console.log(array2);
// output: [2, 4, 6]
Browser Support
? 1.5 ? 9 ? ? ?

? back to top

_.every

測試數組的所有元素是否都通過了指定函數的測試。

// Underscore/Lodash
function isLargerThanTen(element, index, array) {
  return element >=10;
}
var array = [10, 20, 30];
var result = _.every(array, isLargerThanTen);
console.log(result);
// output: true

// Native
function isLargerThanTen(element, index, array) {
  return element >=10;
}

var array = [10, 20, 30];
var result = array.every(isLargerThanTen);
console.log(result);
// output: true
Browser Support
? 1.5 ? 9 ? ? ?

? back to top

_.some

判斷序列中是否存在元素滿足給定方程的條件。

// Underscore/Lodash
function isLargerThanTen(element, index, array) {
  return element >=10;
}
var array = [10, 9, 8];
var result = _.some(array, isLargerThanTen);
console.log(result);
// output: true

// Native
function isLargerThanTen(element, index, array) {
  return element >=10;
}

var array = [10, 9, 8];
var result = array.some(isLargerThanTen);
console.log(result);
// output: true
Browser Support
? 1.5 ? 9 ? ? ?

? back to top

_.reduce

接收一個函數作為累加器(accumulator),數組中的每個值(從左到右)開始縮減,最終為一個值。

// Underscore/Lodash
var array = [0, 1, 2, 3, 4];
var result = _.reduce(array, function (previousValue, currentValue, currentIndex, array) {
  return previousValue + currentValue;
});
console.log(result);
// output: 10

// Native
var array = [0, 1, 2, 3, 4];
var result = array.reduce(function (previousValue, currentValue, currentIndex, array) {
  return previousValue + currentValue;
});
console.log(result);
// output: 10
Browser Support
? 3.0 ? 9 ? 10.5 4.0

? back to top

_.reduceRight

接受一個函數作為累加器(accumulator),讓每個值(從右到左,亦即從尾到頭)縮減為一個值。(與 reduce() 的執行方向相反)

// Underscore/Lodash
var array = [0, 1, 2, 3, 4];
var result = _.reduceRight(array, function (previousValue, currentValue, currentIndex, array) {
  return previousValue - currentValue;
});
console.log(result);
// output: -2

// Native
var array = [0, 1, 2, 3, 4];
var result = array.reduceRight(function (previousValue, currentValue, currentIndex, array) {
  return previousValue - currentValue;
});
console.log(result);
// output: -2
Browser Support
? 3.0 ? 9 ? 10.5 4.0

? back to top

_.filter

使用指定的函數測試所有元素,并創建一個包含所有通過測試的元素的新數組。

// Underscore/Lodash
function isBigEnough(value) {
  return value >= 10;
} 
var array = [12, 5, 8, 130, 44];
var filtered = _.filter(array, isBigEnough);
console.log(filtered);
// output: [12, 130, 44]

// Native
function isBigEnough(value) {
  return value >= 10;
} 
var array = [12, 5, 8, 130, 44];
var filtered = array.filter(isBigEnough);
console.log(filtered);
// output: [12, 130, 44]
Browser Support
? 1.5 ? 9 ? ? ?

? back to top

_.find

返回數組中滿足測試條件的一個元素,如果沒有滿足條件的元素,則返回 undefined。

// Underscore/Lodash
var users = [
  { "user": "barney",  "age": 36, "active": true },
  { "user": "fred",    "age": 40, "active": false },
  { "user": "pebbles", "age": 1,  "active": true }
];

_.find(users, function(o) { return o.age < 40; });
// output: object for "barney"

// Native
var users = [
  { "user": "barney",  "age": 36, "active": true },
  { "user": "fred",    "age": 40, "active": false },
  { "user": "pebbles", "age": 1,  "active": true }
];

users.find(function(o) { return o.age < 40; });
// output: object for "barney"
Browser Support
45.0 25.0 ? Not supported Not supported 7.1

? back to top

_.findIndex

用來查找數組中某指定元素的索引, 如果找不到指定的元素, 則返回 -1.

// Underscore/Lodash
var users = [
  { "user": "barney",  "age": 36, "active": true },
  { "user": "fred",    "age": 40, "active": false },
  { "user": "pebbles", "age": 1,  "active": true }
];

var index =  _.findIndex(users, function(o) { return o.age >= 40; });
console.log(index);
// output: 1

// Native
var users = [
  { "user": "barney",  "age": 36, "active": true },
  { "user": "fred",    "age": 40, "active": false },
  { "user": "pebbles", "age": 1,  "active": true }
];

var index =  users.findIndex(function(o) { return o.age >= 40; });
console.log(index);
// output: 1
Browser Support
45.0 25.0 ? Not supported Not supported 7.1

? back to top

_.indexOf

返回指定值在字符串對象中首次出現的位置。從 fromIndex 位置開始查找,如果不存在,則返回 -1。

// Underscore/Lodash
var array = [2, 9, 9];
var result = _.indexOf(array, 2);    
console.log(result); 
// output: 0

// Native
var array = [2, 9, 9];
var result = array.indexOf(2);    
console.log(result); 
// output: 0
Browser Support
? 1.5 ? 9 ? ? ?

? back to top

_.lastIndexOf

返回指定元素(也即有效的 JavaScript 值或變量)在數組中的最后一個的索引,如果不存在則返回 -1。從數組的后面向前查找,從 fromIndex 處開始。

// Underscore/Lodash
var array = [2, 9, 9, 4, 3, 6];
var result = _.lastIndexOf(array, 9);    
console.log(result); 
// output: 2

// Native
var array = [2, 9, 9, 4, 3, 6];
var result = array.lastIndexOf(9);    
console.log(result); 
// output: 2
Browser Support
? ? 9 ? ? ?

? back to top

_.includes

判斷元素是否在列表中

var array = [1, 2, 3];
// Underscore/Lodash - also called with _.contains
_.includes(array, 1);
// → true

// Native
var array = [1, 2, 3];
array.includes(1);
// → true
Browser Support
47? 43 ? Not supported 34 9

? back to top

_.keys

返回某個對象所有可枚舉的鍵名。

// Underscore/Lodash 
var result = _.keys({one: 1, two: 2, three: 3});
console.log(result);
// output: ["one", "two", "three"]

// Native
var result2 = Object.keys({one: 1, two: 2, three: 3});
console.log(result2); 
// output: ["one", "two", "three"]
Browser Support
5? 4.0 ? 9 12 5

? back to top

_.size

返回集合大小。

// Underscore/Lodash
var result = _.size({one: 1, two: 2, three: 3});
console.log(result);
// output: 3

// Native
var result2 = Object.keys({one: 1, two: 2, three: 3}).length;
console.log(result2); 
// output: 3
Browser Support
5? 4.0 ? 9 12 5

? back to top

_.isNaN

判斷是否為NaN

// Underscore/Lodash
console.log(_.isNaN(NaN));
// output: true

// Native
console.log(isNaN(NaN));
// output: true

// ES6
console.log(Number.isNaN(NaN));
// output: true

MDN:

In comparison to the global isNaN() function, Number.isNaN() doesn"t suffer the problem of forcefully converting the parameter to a number. This means it is now safe to pass values that would normally convert to NaN, but aren"t actually the same value as NaN. This also means that only values of the type number, that are also NaN, return true. Number.isNaN()

Voice from the Lodash author:

Lodash"s _.isNaN is equiv to ES6 Number.isNaN which is different than the global isNaN.
--- jdalton

Browser Support for isNaN
? ? ? ? ?
Browser Support for Number.isNaN
25 15 Not supported ? 9

? back to top

_.reverse

Lodash only
將一個序列反向。

// Lodash
var array = [1, 2, 3];
console.log(_.reverse(array));
// output: [3, 2, 1]

// Native
var array = [1, 2, 3];
console.log(array.reverse());
// output: [3, 2, 1]

Voice from the Lodash author:

Lodash"s _.reverse just calls Array#reverse and enables composition like _.map(arrays, _.reverse).

It"s exposed on _ because previously, like Underscore, it was only exposed in the chaining syntax.

--- jdalton

Browser Support
1.0? 1.0? 5.5? ? ?

? back to top

_.join

Lodash only
將一個序列變成一個字符串。

// Lodash
var result = _.join(["one", "two", "three"], "--");
console.log(result);
// output: "one--two--three"

// Native
var result = ["one", "two", "three"].join("--");
console.log(result)
// output: "one--two--three"
Browser Support
1.0? 1.0? 5.5? ? ?

? back to top

_.toUpper

Lodash only
將字符串大寫。

// Lodash
var result = _.toUpper("foobar");
console.log(result);
// output: "FOOBAR"

// Native
var result = "foobar".toUpperCase();
console.log(result);
// output: "FOOBAR"
Browser Support
? ? ? ? ?

? back to top

_.toLower

Lodash only
將字符串變為小寫。

// Lodash
var result = _.toLower("FOOBAR");
console.log(result);
// output: "foobar"

// Native
var result = "FOOBAR".toLowerCase();
console.log(result);
// output: "foobar"
Browser Support
? ? ? ? ?

? back to top

_.trim

Lodash only
消去字符串起始的空白。

// Lodash
var result = _.trim(" abc ");
console.log(result);
// output: "abc"

// Native
var result = " abc ".trim();
console.log(result);
// output: "abc"
Browser Support
5.0? 3.5? 9.0? 10.5? 5.0?

? back to top

_.repeat

Lodash only
重復創建字符串。

// Lodash
var result = _.repeat("abc", 2);
// output: "abcabc"

// Native
var result = "abc".repeat(2);
console.log(result);
// output: "abcabc"
Browser Support
41? 24? Not supported Not supported 9

? back to top

_.after

Note this is an alternative implementation
創建一個在經過了指定計數器之后才會被調用的方程。

var notes = ["profile", "settings"];
// Underscore/Lodash
var renderNotes = _.after(notes.length, render);
   notes.forEach(function(note) {
   console.log(note);
   renderNotes();
});

 // Native
notes.forEach(function(note, index) {
 console.log(note);
 if (notes.length === (index + 1)) {
   render();
 }
});
Browser Support
? ? ? ? ?

? back to top

Reference

Mozilla Developer Network

Underscore.js

Lodash.js

Inspired by:

You-Dont-Need-jQuery

Rui"s blog

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78690.html

相關文章

  • You-Dont-Need : 你不需要系列

    摘要:是強大的,你可以做很多事情沒有。如果你想要你的項目需要更少的依賴,并且你清楚的知道你的目標瀏覽器,那么你可能不需要。我們并不需要為了操作等再學習一下的。但是,他們往往需要更多的資源,功能不強,難以通過腳本自動化。 1 You-Dont-Need-JavaScript CSS是強大的,你可以做很多事情沒有JS。 本文教你使用原生CSS做下面的事情。 內容目錄 手風琴/切換 圓盤傳送帶...

    anonymoussf 評論0 收藏0
  • You-Dont-Need : 你不需要系列

    摘要:是強大的,你可以做很多事情沒有。如果你想要你的項目需要更少的依賴,并且你清楚的知道你的目標瀏覽器,那么你可能不需要。我們并不需要為了操作等再學習一下的。但是,他們往往需要更多的資源,功能不強,難以通過腳本自動化。 1 You-Dont-Need-JavaScript CSS是強大的,你可以做很多事情沒有JS。 本文教你使用原生CSS做下面的事情。 內容目錄 手風琴/切換 圓盤傳送帶...

    bawn 評論0 收藏0
  • 2018年你應該知道的11個Javascript實用程序庫

    摘要:構建是為了在中為常見任務提供實用程序功能。所有功能都自動進行,并且相應地安排傳遞的參數以便于使用。在星級,是一個用于處理本機對象的實用程序庫。該庫沒有外部依賴關系,這是一個將事件作為序列進行測試的現場演示。 由于Javascript在2018年仍然是最受歡迎和最廣泛使用的編程語言,因此圍繞它擴展了生態系統。 showImg(https://segmentfault.com/img/re...

    Ali_ 評論0 收藏0
  • 2018年你應該知道的11個Javascript實用程序庫

    摘要:構建是為了在中為常見任務提供實用程序功能。所有功能都自動進行,并且相應地安排傳遞的參數以便于使用。在星級,是一個用于處理本機對象的實用程序庫。該庫沒有外部依賴關系,這是一個將事件作為序列進行測試的現場演示。 由于Javascript在2018年仍然是最受歡迎和最廣泛使用的編程語言,因此圍繞它擴展了生態系統。 showImg(https://segmentfault.com/img/re...

    Yumenokanata 評論0 收藏0
  • 深入剖析 JavaScript 的深復制

    摘要:的不能算作深復制,但它至少比直接賦值來得深一些,它創建了一個新的對象。它們的主要用途是對存在環的對象進行深復制。比如源對象中的子對象在深復制以后,對應于。希望這篇文章對你們有幫助深復制方法所謂擁抱未來的深復制實現參考資料 本文最初發布于我的個人博客:咀嚼之味 一年前我曾寫過一篇 Javascript 中的一種深復制實現,當時寫這篇文章的時候還比較稚嫩,有很多地方沒有考慮仔細。...

    gclove 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<