JSの実用工具庫Lodashが分かりません.どうしてJSができますか?
21380 ワード
、 、
です.業界は非常に有名で、他の第三者の依存を導入する必要はありません.私達は利用する過程で Lodash
ができます.(特に、モジュール化は、機能に適合する関数の作成、アレー、オブジェ、およびstring(文字列)の作成などに適しています._
シンボルを使用しています.とても簡潔です.Lodash.jsを使って、Lodash.js開発パッケージを導入する方法はいくつかあります.
< script src="lodash.js">< /script>
< script src="https://cdn.bootcss.com/lodash.js/4.17.15/lodash.core.min.js">< /script >
$ npm i -g npm
$ npm i --save lodash
// Load the full build.
var _ = require('lodash');
// Load the core build.
var _ = require('lodash/core');
// Load the FP build for immutable auto-curried iteratee-first data-last methods.
var fp = require('lodash/fp');
// Load method categories.
var array = require('lodash/array');
var object = require('lodash/fp/object');
// Cherry-pick methods for smaller browserify/rollup/webpack bundles.
var at = require('lodash/at');
var curryN = require('lodash/fp/curryN');
注意:Node.js<6のREPL環境でLodashを使用する場合は、n_
をインストールしてください.二、ローダッシュを使う
_.cloneDeep
(クローニング)周知のように、JSにおける深さクローニングオブジェクトは比較的困難であり、例:JSON.parse(JSON.strigify(Obj)は深さクローニングを行う.しかし、このような案は対象の内部で方法がない時だけ可能です.そうでないとだめです.var obj ={
a:{
b:100,
fun:function(){
console.log("fun");
}
}
}
var obj2 = _.cloneDeep(obj);
obj.a.b=2000;
console.log(obj2.a.b,obj.a.b); // 100 2000
obj2.a.fun();
_.compact(array)
は、元の配列内のすべての偽値要素を除去する配列を作成する.例えばfalse、null、0、「」、undefined、およびNaNは「false」と考えられています.var arr =[1,2,'',null,0,33,"aa"];
var temArr = _.compact(arr); // null 0 false
console.log(temArr); // [ 1, 2, 33, 'aa' ]
_.concat(array, [values])
は、任意の配列または値と接続された新しい配列を作成し、接続後の新しい配列を返します.var array = [1,2,3];
var other = _.concat(array, 2, [3], [[4,5,6]]);
console.log(other); // [ 1, 2, 3, 2, 3, [ 4, 5, 6 ] ]
console.log(array); // [ 1, 2, 3 ]
_.chunk(array, [size=1])
は、sizeサイズに従ってarray配列を分割し、配列を複数のsize長さのブロックに分割し、これらのブロックを新たな配列に構成する.もしarrayがすべての等長のブロックに分割できないなら、最後の残りの要素はブロックを構成します.分割ブロックを含む新しい配列を返します.var chunk1 = _.chunk(['a', 'b', 'c', 'd'], 2);
console.log(chunk1); // [['a', 'b'], ['c', 'd']]
var chunk2 = _.chunk(['a', 'b', 'c', 'd'], 3);
console.log(chunk2); // [['a', 'b', 'c'], ['d']]
_.includes(obj,ele,index)
の最初のパラメータはクエリーが必要なオブジェクトであり、第二のパラメータはクエリが必要な要素であり、第三のパラメータはクエリが開始される下付きパラメータである.var obj = {
'name': ' ',
'age': 18
},
arr = [" ", " ", " ", " "];
console.log(_.includes(obj, ' ')); // true
console.log(_.includes(arr, ' ')); // true
console.log(_.includes(arr, ' ',2)); // false
_.times()
は、forよりも簡潔で分かりやすい._.times(5,function(a){
console.log(a); // 0 1 2 3 4
});
_.map()
は、元のJSにおける配列方法のアップグレードバージョンであり、レプリカ関数ではなく文字列を通して、深さネストのオブジェクト属性を閲覧することができる.var arr = [{
"name": " ",
"phone": [{"name": "MI"}, {"name": "iphone"}]
}, {
"name": " ",
"phone": [{"name": "HUAWEI"}, {"name": "honor"}]
}];
var jsMap = arr.map(function (owner) {
return owner.phone[0].name;
});
var lodashMap = _.map(arr, 'phone[0].name');
console.log(lodashMap); // MI HUAWEI
_.random ()
本方法も比較的に強力で柔軟であり、一つのパラメータだけを最大値として入力することができ、また戻った結果を浮動小数点として指定することもできる.例:_.ランドm(12,18,true)function randomNum(min, max){
return Math.floor(Math.random() * (max - min)) + min;
}
console.log(randomNum(12, 18));
console.log(_.random(12, 18));
先にこんなに多く書いて、自分で中国語の文書を調べられる方法があります.詳しいですよ.これらの方法をテストしたり勉強したりする時、問題があったら、下の方にメッセージや私信を書いてください.サポート:chrome 43以上、Firefox 38以上、IE 6以上、MS Edge、Safari 5以上、Node.js 8以上の環境でテストに合格しました.
整理は簡単ではないです.見終わったら気をつけてください.応援は博主の最大の動力です.