jajaplus / blog

0 stars 0 forks source link

ARTS 第八周(2019.08.19-2019.08.25) #8

Open jajaplus opened 5 years ago

jajaplus commented 5 years ago

算法

https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/1/array/29/

(对象可以直接通过key来进行查找,把数组的值存在对象里面就可以进行快速的便利寻找,对象的key有特别的含义/throw error的计算消耗比计算更多,不用在循环里面抛出错误,会更加消耗性能) 
/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
// var twoSum = function(nums, target) {
//     let indexs = []
//     nums.forEach((num,index)=>{
//             for(let i = index+1;i<=nums.length;i++){
//                 if(num+nums[i]===target){
//                     indexs = [index,i]
//                 }
//             }
//     })
//     return indexs
// };
var twoSum = function(nums, target) {
    const obj = {}
    for (let i = 0; i < nums.length; i++) {
        if (obj[target - nums[i]] !== undefined) return [obj[target - nums[i]], i]
        obj[nums[i]] = i
    }
};

阅读

https://www.freecodecamp.org/news/delivering-a-big-project-to-a-tight-deadline-4645aa62886d/

generator的基本使用(用于回调,可以暂停函数的执行)

1.generator会遍历整个对象,找出其中的yeild字段 2.generator返回一个遍历器({value,done},值为yeild紧跟的表达式和是否执行完成),每次执行一次next会停顿在yeild语句前,语句不会立即执行 3.首次的generator只有在执行next后才可以执行第一个语句。与function不同 4.yeild只能用在generator函数里面,foreach不行,但是for语句可以 5.next里面的参数作为yeild的返回值 6.for循环可以遍历generator的所有yeild

分享