Lodash 是一款非常知名的 JavaScript 工具库,能够让开发者十分便捷地操纵数组和对象。我则是非常喜欢用它提供的函数式编程风格来操作集合类型,特别是链式调用和惰性求值。然而,随着 ECMAScript 2015 Standard (ES6) 得到越来越多主流浏览器的支持,以及像 Babel 这样,能够将 ES6 代码编译成 ES5 从而在旧浏览器上运行的工具日渐流行,人们会发现许多 Lodash 提供的功能已经可以用 ES6 来替换了。然而真的如此吗?我认为,Lodash 仍然会非常流行,因为它可以为程序员提供更多的便利,并且优化我们编程的方式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>lodash</title>
</head>
<body>
<script src="js/lodash.min.js"></script>
<script>
var arr = _.indexOf([5,1,2,3,5,8,7,5], 5)
var d = [1,2,1,4,4,4,4,55]
console.log(d.join('~'))
console.log(_.join(d,"-"))
// 开源中国 lodash
var users = [
{ 'user': 'barney', 'age': 36 },
{ 'user': 'fred', 'age': 40 },
{ 'user': 'pebbles', 'age': 18 },
{ 'user': 'pebbles', 'age': 8 }
];
var names = _(users).map(function(item){
return item.user;
}).join(',');
console.log(names+'---names')
var yong = _(users).max(function(items){
return items.age;
})
//年龄最小
console.log(yong)
//年龄最小的人
var yongMen = _(users).sortBy('age').map(function(item){
return item;
}).first();
console.log(yongMen)
// 分割数组
var obj = _.chunk(users,2)
console.log(obj)
// 替换特殊字符
var namesp = _(users).map(function(item){
return item.user;
}).fill('/',1,2).value();
console.log(namesp)
//remove 方法 按照某种条件去除一个数组中不想要的元素;
var removeM = _.remove(users, function(item){
console.log(item)
return item.age<=8
})
console.log(removeM)
// 数组去重
var only = _.uniq(d)
console.log(only);
var objA = {
"name": "colin"
}
// Lodash 深度克隆 所有元素或属性均完全复制,与原对象完全脱离
var objB = _.cloneDeep(objA);
console.log(objB === objA)
// 生成随机数
var dom = _.random(10)
console.log(dom)
</script>
</body>
</html>