目录
lodash初识
前沿
lodash是什么?
实际运用
算法举例[剑指 Offer 50. 第一个只出现一次的字符]
防范举例
总结
参考地址
lodash初识
前沿
第一次听到这个技术的时候是在看视频被提到一次,并且使用了其中的防抖和及节流的封装,当时不以为然,直到刷算法时再次遇到使用lodash 封装的方法来解题,于是乎决定来了解一番。
lodash 是什么?
官方介绍
个人比较浅显的认识
-
个人目前的水平理解为这是一个工具库,可以对开发处理开发过程中一些常见的或者繁琐、经典的一些功能,将这些进行封装,用的时候直接开箱即用,对开发效率上提供帮助。 -
比如:数组、集合、函数、语言、数学逻辑功能、对象、Sep 、字符串、一些实用函数、方法、Properties -
当然以上仅仅是将官方的目录给罗列出来而已,深入知识还有待探索
实际运用
-
题目 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
?
示例 1:
?
输入:s = "abaccdeff"
输出:'b'
示例 2:
?
输入:s = ""
输出:' '
?
限制:0 <= s 的长度 <= 50000
? -
题解 var firstUniqChar = function(s) {
? const frequency = _.countBy(s);
? for (const [i, ch] of Array.from(s).entries()) {
? ? ? if (frequency[ch] === 1) {
? ? ? ? ? return ch;
? ? ? }
? }
? return ' ';
}; -
分析
-
_.countBy 方法
_.countBy方法创建一个由键组成的对象,这些键是通过运行iteratee的collection的每个元素的结果生成的。每个 key 的对应值是iteratee返回 key 的次数。
//比如
var s = "aacb"
const frequency = _.countBy(s);
console.log(frequency); // {a: 2, c: 1, b: 1}
-
Array.from (s) var s = "aacb"
const frequency = _.countBy(s);
console.log(Array.from(s));
// ?['a', 'a', 'c', 'b'] -
entries方法 //实例
const object1 = {
a: 'somestring',
b: 42
};
?
for (const [key, value] of Object.entries(object1)) {
console.log(`${key}: ${value}`);
}
?
// expected output:
// "a: somestring"
// "b: 42"
?
了解这些方法后,该题就很容易得到解决了
防范举例
总结
参考地址
|