虾皮秋招笔试
输出选择
jslet foo = {}; let obj = {}; let obj2 = { a: 1 }; foo[obj] = "hello"; foo[obj2] = "hello2"; console.log(foo[obj], foo[obj2]);
输出选择
jsPromise.all([]).then((res) => console.log("all")); Promise.race([]).then((res) => console.log("race"));
输出
jsname = "Sophee"; obj = { name: "SopheePay", getName: () => { console.log(this.name); }, getName2: function () { console.log(this.name); }, }; const fn1 = obj.getName; const fn2 = obj.getName2; console.log(obj.getName(), fn1(), obj.getName2(), fn2());
HTTPS 采用了哪些技术?
TCP 与关闭连接相关的变量有:
给定一个由字母和数字组成的字符串,输出这个字符串里第 K 大的数字。堆
抓取气球,给定 total 和 scores,有几种抓取方式可以使总分为 total。输入
5, [1,2,5]
,输出4
(5, 2+1+1+1, 2+2+1, 1+1+1+1+1)。找零钱实现深度比较
🔍 展开代码
jsfunction isEqualedArray(arr1, arr2) { const m = arr1.length; const n = arr2.length; if (m !== n) return false; for (let i = 0; i < m; i++) { if (!_deepEq(arr1[i], arr2[i])) return false; } return true; } function deepEq(strA, strB) { const objA = JSON.parse(strA.replace(/'/g, '"')); const objB = JSON.parse(strB.replace(/'/g, '"')); return _deepEq(objA, objB); } function _deepEq(o1, o2) { if (o1 === o2) return true; const flag1 = Array.isArray(o1); const flag2 = Array.isArray(o2); if (flag1 && flag2) { return isEqualedArray(o1, o2); } else if ( !flag1 && !flag2 && typeof o1 === "object" && typeof o2 === "object" ) { const keys1 = Object.keys(o1); const keys2 = Object.keys(o2); if (keys1.length !== keys2.length) return false; for (const key of keys1) { if (!(key in o2)) return false; if (!_deepEq(o1[key], o2[key])) return false; } return true; } else { return o1 == o2; } }