lodash

lodash

安裝

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"/>
npm i --save lodash

常用語法

Collection

find

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; });
// => 結果: barney

// 使用了 _.matches 的取回結果
_.find(users, { 'age': 1, 'active': true });
// => 結果: 'pebbles'

// 使用了 _.matchesProperty 的取回結果
_.find(users, ['active', false]);
// => 結果: 'fred'

// 使用了 _.property 的取回結果
_.find(users, 'active');
// => 結果: 'barney'

orderBy

var users = [
  { 'user': 'fred',   'age': 48 },
  { 'user': 'barney', 'age': 34 },
  { 'user': 'fred',   'age': 42 },
  { 'user': 'barney', 'age': 36 }
];

// 以 `user` 升序排序 再 以 `age` 降序排序。
_.orderBy(users, ['user', 'age'], ['asc', 'desc']);

sortBy

var arr = [8, 4, 16, 15, 43, 34];
console.log(_.sortBy(arr, [function(o) { return o; }]));
console.log(_.sortBy(arr, [function(o) { return -o; }]));

Math

sum

_.sum([4, 2, 8, 6]);

sumBy

var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];

_.sumBy(objects, function(o) { return o.n; });
_.sumBy(objects, 'n');

round

四捨五入

_.round(4.006);
// => 4

_.round(4.006, 2);
// => 4.01

_.round(4060, -2);
// => 4100

Number

// _.inRange(number, [start=0], end)
_.inRange(3, 2, 4);
_.random(15, 20);

Object

forOwn

Array.prototype.bar = 1;
var arr = [1, 2, 3];

// old style
for(var i in arr){
  if (arr.hasOwnProperty(i)){
    console.log(i);
  }
}

_.forOwn(arr, function(value, key) {
  console.log(key);
});

has

var object = { 'a': { 'b': { 'c': 3 } } };
_.has(object, 'a.b.c');

extend / assignIn

結合和組合物件

function Foo() {
  this.a = 1;
}

function Bar() {
  this.c = 3;
}

Foo.prototype.b = 2;
Bar.prototype.d = 4;

_.assignIn({ 'a': 0 }, new Foo, new Bar);

String

_.trim('  abc  ');

延伸閱讀

results for ""

    No results matching ""