# 20181125_ARTS_week22

## Algorithm

```/**
* Maximum Subarray
* https://leetcode.com/problems/maximum-subarray/
*
* @param {number[]} nums
* @return {number}
*/
var maxSubArray = function (nums) {
for (let i = 1; i < nums.length; i++) {
nums[i] = Math.max(nums[i], nums[i] + nums[i - 1]);
}
return Math.max(...nums);
};

console.log(maxSubArray([-2, 1, -3, 4, -1, 2, 1, -5, 4])) // 6```

## Review

JavaScript hacks for ES6 hipsters

https://hackernoon.com/javascript-hacks-for-es6-hipsters-67d633ce8ace

```let a = 'world', b = 'hello'
[a, b] = [b, a]
console.log(a) // -> hello
console.log(b) // -> world
// Yes, it's magic```

```const [user, account] = await Promise.all([
fetch('/user'),
fetch('/account')
])```

```const one = ['a', 'b', 'c']
const two = ['d', 'e', 'f']
const three = ['g', 'h', 'i']
// Old way #1
const result = one.concat(two, three)
// Old way #2
const result = [].concat(one, two, three)
// New
const result = [...one, ...two, ...three]```

```const obj = { ...oldObj }
const arr = [ ...oldArr ]```

```const getStuffNotBad = (id, force, verbose) => {
...do stuff
}
const getStuffAwesome = ({ id, name, force, verbose }) => {
...do stuff
}
// Somewhere else in the codebase... WTF is true, true?
// Somewhere else in the codebase... I ❤ JS!!!
getStuffAwesome({ id: 150, force: true, verbose: true })```

## Tip

```function getFileExtension2(filename) {
return filename.split('.').pop();
}```

```function getFileExtension3(filename) {
return filename.slice((filename.lastIndexOf(".") - 1 >>> 0) + 2);
}

console.log(getFileExtension3(''));                            // ''
console.log(getFileExtension3('filename'));                    // ''
console.log(getFileExtension3('filename.txt'));                // 'txt'
console.log(getFileExtension3('.hiddenfile'));                 // ''
console.log(getFileExtension3('filename.with.many.dots.ext')); // 'ext'```

## Share

0 条评论

• ### 20181013_ARTS_week16

这题没好好审题，题目中说不能增加其它空间，以及要在原数组中改，没注意最后只要前 n 位是无重复的就可以了。

• ### 20181021_ARTS_week17

Improving your Async functions with WebWorkers

• ### 让文字沿着路径动起来 (SVG)

由于我对 SVG 也不是太熟悉，有些地方可能有所疏漏，有什么疑问欢迎留言，有什么写错的地方，欢迎指出哈。

• ### View的位置参数及其Scroller类的理解

x和y是View左上角的坐标，translationX和translationY是View左上角相对于容器的偏移量。这几个参数都是相对于父容器的坐标。

• ### Leetcode 189 Rotate Array

Rotate an array of n elements to the right by k steps. For example, with n = 7...

• ### Java基础知识点总结

本文主要是我之前复习Java基础原理过程中写的Java基础知识点总结。Java的知识点其实非常多，并且有些知识点比较难以理解，有时候我们自以为理解了某些内容，其...

• ### MySQL进阶篇(03)：合理的使用索引结构和查询

在MySQL使用的过程中，所谓的性能问题，在大部分的场景下都是指查询的性能，导致查询缓慢的根本原因是数据量的不断变大，解决查询性能的最常见手段是：针对查询的业务...

• ### PHP生成推广海报的方法

经常有这样的需求，就是需要在生成推广海报，包含指定的二维码，分享出去别人扫码之后就可以确定用户推荐关系。

• ### 【python入门系类课程 第三课 神奇的画笔】

本系列课程是针对无基础的，争取用简单明了的语言来讲解，学习前需要具备基本的电脑操作能力，准备一个已安装python环境的电脑。如果觉得好可以分享转发，有问题的地...