アンダスコ/Lodashは必要ありません.
13008 ワード
You don't(may not)need Lodash/Underscore
LodashとUnderscoreは非常に優れた現代JavaScriptのツールセットフレームであり、それらは先端開発者によって広く使われています.しかし、現在は近代的なブラウザに対して開発を行っています.多くの場合、私達が利用しているUnderscoreの方法はES 5とES 6によってサポートされています.もし私達が私達のプロジェクトにできるだけ依存を減らしてほしいなら、目標ブラウザによってLodashやUnderscoreを選択することができます.
開発者の声
Make use of native JavaScript object and array utilities before going big.Cody lindley,Author of jQuery Cookbook,JavaScript Elightenment
You probably don't need Lodash.Nice List of JavaScript methods which You can use nativally.Daniel Lamb,Computer Scintist,Technical Review of the JavaScrett Ninja,Funtional Progingja
I gusess not,but I want it.Tero Paviainen,Author of build-your-own-anglar
I'll admit,I've been guity of overusing.Excellent reource.therebelrobot,Maker of web things,Facilittor for Node.js/io.js
Quick links_.each _.map _.every _.some _.reduce _.reduceRight _.filter _.find _.findIndex _.indexOf _.lastIndexOf _.includes _.keys _.size _.isNaN _.reverse _.ジョイン _.toUpper _.タワー _.trim _.repeat _.after _.each
一連の要素を巡回し、フィードバック処理方程式を呼び出します.Iterates over a list of element,yielding each in turn to an iteratee function.
✔
1.5✔
9✔
✔
✔
⬆ back to top
_.map
あるリストの要素を新しいリストにマッピングします.
✔
1.5✔
9✔
✔
✔
⬆ back to top
_.every
配列のすべての要素が指定された関数によってテストされましたか?
✔
1.5✔
9✔
✔
✔
⬆ back to top
_.そして私
シーケンスに要素が存在するかどうかを判断し、与えられた方程式の条件を満たす.
✔
1.5✔
9✔
✔
✔
⬆ back to top
_.reduce
1つの関数をアキュムレータとして受信し、配列内の各値(左から右へ)が縮小され、最終的には1つの値になります.
✔
3.0✔
9✔
10.5
4.0
⬆ back to top
_.reduceRight
一つの関数をアキュムレータとして受け入れ、各値(右から左、つまり最後まで)を一つの値に縮小します.(reduce()の実行方向とは反対)
✔
3.0✔
9✔
10.5
4.0
⬆ back to top
_.filter
指定された関数を使用して、すべての要素をテストし、テストされたすべての要素を含む新しい配列を作成します.
✔
1.5✔
9✔
✔
✔
⬆ back to top
_.find
配列内の試験条件を満たす要素を返します.条件を満たす要素がない場合は、undefinedを返します.
45.0
25.0✔
Not supported
Not supported
7.1
⬆ back to top
_.findIndex
指定された要素の索引を検索します.指定された要素が見つからない場合は、-1を返します.
45.0
25.0✔
Not supported
Not supported
7.1
⬆ back to top
_.indexOf
指定された値が文字列オブジェクトで最初に発生する位置を返します.from Index位置から検索を開始し、存在しない場合は-1を返します.
✔
1.5✔
9✔
✔
✔
⬆ back to top
_.lastIndexOf
指定された要素(すなわち有効なJavaScript値または変数)の配列の最後のインデックスを返します.存在しない場合は-1を返します.配列の後ろから前へ検索して、from Indexから開始します.
✔
✔
9✔
✔
✔
⬆ back to top
_.includes
要素がリストにあるかどうかを判断します.
47✔
43✔
Not supported
34
9
⬆ back to top
_.keys
あるオブジェクトの列挙可能なキー名を返します.
5✔
4.0✔
9
12
5
⬆ back to top
_.size
集合サイズを返します.
5✔
4.0✔
9
12
5
⬆ back to top
_.isNaN
NaNかどうか判断する
In cocococommparion to the global
Voice from the Lodash author:
Lodash's
Browser Support for
✔
✔
✔
✔
Browser Support for
15
Not supported
✔
9
⬆ back to top
_.逆転セ
Lodash's
---Jdalton
Browser Support
1.0✔
1.0✔
5.5✔
✔
✔
⬆ back to top
_.ジョン
1.0✔
1.0✔
5.5✔
✔
✔
⬆ back to top
_.トップバッター
✔
✔
✔
✔
✔
⬆ back to top
_.タワー
✔
✔
✔
✔
✔
⬆ back to top
_.trim
5.0✔
3.5✔
9.0✔
10.5✔
5.0✔
⬆ back to top
_.repeat
41✔
24.✔
Not supported
Not supported
9
⬆ back to top
_.アフターサービス
✔
✔
✔
✔
✔
⬆ back to top
Reference Mozilla Developer Network Underscore.js Lodash.js Inspired by: You-Dot-Need-jQuery Rui'sブログ
LodashとUnderscoreは非常に優れた現代JavaScriptのツールセットフレームであり、それらは先端開発者によって広く使われています.しかし、現在は近代的なブラウザに対して開発を行っています.多くの場合、私達が利用しているUnderscoreの方法はES 5とES 6によってサポートされています.もし私達が私達のプロジェクトにできるだけ依存を減らしてほしいなら、目標ブラウザによってLodashやUnderscoreを選択することができます.
開発者の声
Make use of native JavaScript object and array utilities before going big.Cody lindley,Author of jQuery Cookbook,JavaScript Elightenment
You probably don't need Lodash.Nice List of JavaScript methods which You can use nativally.Daniel Lamb,Computer Scintist,Technical Review of the JavaScrett Ninja,Funtional Progingja
I gusess not,but I want it.Tero Paviainen,Author of build-your-own-anglar
I'll admit,I've been guity of overusing.Excellent reource.therebelrobot,Maker of web things,Facilittor for Node.js/io.js
Quick links
一連の要素を巡回し、フィードバック処理方程式を呼び出します.Iterates over a list of element,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
_.そして私
シーケンスに要素が存在するかどうかを判断し、与えられた方程式の条件を満たす.
// 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
1つの関数をアキュムレータとして受信し、配列内の各値(左から右へ)が縮小され、最終的には1つの値になります.
// 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
一つの関数をアキュムレータとして受け入れ、各値(右から左、つまり最後まで)を一つの値に縮小します.(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 Support45.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 Support45.0
25.0✔
Not supported
Not supported
7.1
⬆ back to top
_.indexOf
指定された値が文字列オブジェクトで最初に発生する位置を返します.from Index位置から検索を開始し、存在しない場合は-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を返します.配列の後ろから前へ検索して、from Indexから開始します.
// 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 Support47✔
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 Support5✔
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 Support5✔
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 cocococommparion to the global
isNaN()
function、Number.isNaN()
doesn't suffer the problm of forcefully convertititing the parameterto a number.This means itisisis safeto pass values thwowould normalalalalalalalalalalallyconvert 2445454545454545454545totototosasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasathat are also NaN
、return true.Number.isNaN()Voice from the Lodash author:
Lodash's
NaN
is equiv to ES 6 NaN
which is different than the global _.isNaN
.---jdaltonBrowser Support for
Number.isNaN
✔ ✔
✔
✔
✔
Browser Support for
isNaN
2515
Not supported
✔
9
⬆ back to top
_.逆転セ
isNaN
は、シーケンスを逆にする.// 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
Number.isNaN
just cals Lodash only
and enables compsition like _.reverse
It's exposed on_because previousy、like Array#reverse
、it was only exposed in the chaining syntax.---Jdalton
Browser Support
1.0✔
1.0✔
5.5✔
✔
✔
⬆ back to top
_.ジョン
_.map(arrays, _.reverse).
は、1つのシーケンスを文字列に変換する.// 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 Support1.0✔
1.0✔
5.5✔
✔
✔
⬆ back to top
_.トップバッター
Underscore
は文字列を大文字にする.// 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
_.タワー
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 Support5.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 Support41✔
24.✔
Not supported
Not supported
9
⬆ back to top
_.アフターサービス
Lodash only
は、指定されたカウンタを通過した後に呼び出される方程式を作成する.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