![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
不愿透露姓名的余菜鸟
山不向我走来,我便向山靠去
展开
-
(JS)随机生成一个N*N的矩阵,找出鞍点
随机生成一个N*N的矩阵,找出鞍点鞍点:行中最大的数,列中最小的数例如:[[1,9,4],[8,2,5],[7,6,3]] 不存在鞍点[[1,2,3],[4,5,6],[7,8,9]]鞍点为3步骤let arr = [ [1, 9, 4], [8, 2, 5], [7, 6, 3] ]; let arr2 = [ [1, 2, 3], [4, 5, 6], [7,原创 2021-01-26 21:47:38 · 1272 阅读 · 2 评论 -
(JS)创建10个a标签,点击输出相应序号
let a,fragment = document.createDocumentFragment(); for(var i = 0; i < 10; i++) { a = document.createElement("a"); a.innerHTML = i; a.index = i; a.onclick = function(e) { alert(e.target.index) } fragment.appendChild(a)...原创 2020-10-23 13:40:58 · 354 阅读 · 0 评论 -
(JS)筛选出对象中value大于2的key
var obj = { "a":1, "b":2, "c":3, "d":4, "e":5, "f":6 } let c = Object.values(obj); let key = Object.keys(obj); let x = key.filter(item=>{ return obj[item]>2; });原创 2020-10-23 13:34:48 · 936 阅读 · 0 评论 -
(JS)模仿indexOf方法寻找字符串中某个字符的位置
function indexof(str,target) { let result = str.match(target); return result? result.index:-1; }原创 2020-10-22 22:01:00 · 268 阅读 · 0 评论 -
(JS)模仿一个instanceof方法
(JS)模仿一个instanceof方法let instanceOf = function(a,b) { let p = a; while(p) { if(p === b.prototype) { return true; } p= p.__proto__; } return false;}原创 2020-08-15 20:50:09 · 247 阅读 · 0 评论 -
(JS)数组排平(flat)
如果只有一层嵌套数组情况Array.prototype.concat.apply([], arr)或[].concat(arr)或Array.prototype.concat.call([], arr[0],arr[1]...)如果有多层嵌套function flat(arr) { //判断是否有多层数组 const isDeep = arr.some(item => { return item instanceof Array; }.原创 2020-08-10 18:45:12 · 299 阅读 · 0 评论 -
(JS)捕获错误(异常)
使用try …cathtry{ //todo}catch(ex) { throw new Error(ex);}finally { //todo}使用window捕获 window.onerror = function(message, source, linenum, colnum, error) { //todo // 对于跨域的JS,不会有详细报错信息 // 对于压缩的JS,需要配合sourceMap反查到未压缩代码行}...原创 2020-08-10 17:25:56 · 332 阅读 · 0 评论 -
(JS)数组中纯函数
不改变源数组(没有副作用)返回一个数组Arrat.concat(value)合并数组并返回一个新数组,不对原数组做改变(与push相似,在数组末尾添加value) let array = [1,2,3,4,5]; let x = array.concat([10,20]) console.log(x) // [1,2,3,4,5,10,20]Array.map(function)遍历数组,如果return出数组值,将成为一个新数组,如果使用判断,则不符合条件的返回false.原创 2020-08-09 17:42:33 · 539 阅读 · 0 评论 -
(JS)数组的 pop、push、unshift、shift分别是什么?
Array.pop()移除数组的最后一项,并返回移除项 let array = [1,2,3,4,5]; let x = array.pop(); console.log(x) //5Array.push(value)在数组末尾添加一项并返回新数组长度value可以是任何类型 let array = [1,2,3,4,5]; let y = array.push(66) console.log(y) //6Array.shift()移除数组首项,并返回移除项 let.原创 2020-08-09 17:21:42 · 369 阅读 · 0 评论 -
(JS)手写深比较
//深比较function isObject(obj) { return typeof obj==="object" ? true : false;}function isEqual(obj1,obj2) { if(!isObject(obj1) || !isObject(obj2)) { return obj1 === obj2; } if(obj1 === obj2) { return true; } // 取出obj1和obj2的key const obj1Keys = O原创 2020-08-09 16:43:27 · 160 阅读 · 0 评论 -
(JS)手写bind函数
(JS)手写bind函数Function.prototype.binds = function() { // 将参数解析为数组 const args = Array.prototype.slice.call(arguments); // 取出数组第一项,其余的为参数(同时获取this) const t = args.shift(); const self = this; return function() { return self.apply(t,args) }}...原创 2020-08-03 17:33:27 · 216 阅读 · 0 评论 -
(JS)手写深拷贝
JS手写深拷贝const obj1 = { age: 20, name: "xxx", address: { city: "earth" }};/** * * @param obj {Object} */function deepClone(obj = {}) { if (typeof obj !== "object" || obj == null) { return obj; } let result; if (obj instanceof Array) { r原创 2020-08-02 20:07:26 · 433 阅读 · 0 评论