今日大事:今天的大事就是发工资了,不得不讲对发工资这件事我是百感交集,来北京工作的两家公司,都拖欠我工资,第一家直接拖欠了半年,好歹是给我了,第二家现在仲裁也是没个结果。以我惨痛的经历终于总结出来一条实用的法则。那就是如果是十号发工资,说明公司不缺钱福利啥的也没问题,如果能遇到妥妥的走了狗屎运💩,没错我现在就是😂。如果公司是十五号发虽然不能证明你的公司差基本是好不了哪里去,平时没事注意下⚠️,千万不要有拖发的情况,如果真的发生了的话,恭喜你获得跳槽涨薪的机会,不是人人都有的哟。
回到正题:
还记得那天中午阳光☀️明媚,有图为证:
酷
大中午的去那里面试,电话☎️一面的时候我是很中意面试官的,问的很多也很深,我是感觉人不错。结果当场二面的时候让我手写 flat 方法,尴了尬😅。
flat 可以进行数组的扁平化,重要的是后面有个参数,能过只是扁平化层数还是很好用的。来看看怎么实现。
一、如何二维数组变为一维数组
const arr = [[0,1,2],[3,4,5,6],7,8];
function _flat(argv){
return [].concat(...argv);
};
console.log(_flat(arr));
//[0, 1, 2, 3, 4, 5, 6, 7, 8]
这还不是我见过的最简单的扁平化写法,我见过最简单的是这样写的,无论几层都适用:
[[[0,1,2],[3,4,5,6],7,8] + ""]
如果你知道 a = 1 = 2 = 3
就会明白上面这个写法,原理都是一样的。
二、任意层数的 flat
const arr = [[0,[19,42,3],2],[3,4,[[9,5],10,12],6],7,8];
function _flat(argv,num = 1){
for(let i = 0;i < num;i++){
argv = [].concat(...argv);
};
return argv;
};
console.log(_flat(arr,3));
就加一个参数和一个 for 循环♻️。完整的写出来就是这样:
const arr = [[0,[19,42,3],2],[3,4,[[9,5],10,12],6],7,8];
Array.prototype._flat = function(num = 1){
if(Array.isArray(this)){
let _this = this;
for(let i = 0;i < num;i++){
_this = [].concat(..._this);
};
return _this;
}
return this;
};
console.log(arr._flat(3));
就是那么简单完了。
有一篇文章写的挺好:面试官连环追问:数组拍平(扁平化) flat 方法实现
当前时间 2020年5月9日 星期六 23:30:48
网友评论