Chuck
Chuck
有一个未知的对象数组,数组的每一项存储的都是对象,现在需要对这个数组去重。这个和我们常见的对象数组不太一样,以往我们会根据对象数组里对象的某些属性去重,而这道题我们无法得知对象里的属性是什么,所以需要采取最直观的方式去重。 ```js function dropDuplicate (arr = []) { if (arr.length { if (typeof a !== 'object' || typeof b !== 'object') return false if (Object.keys(a).length !== Object.keys(b).length) return false for...
```js // 请实现一个 render 函数:该函数接受两个参数,一个是模版,一个是数据对象。 // 模版通过插值表达式引用数据对象上的数据,通过 render 函数能够把模版转换为真实的字符串。 let template = '大家好,我的名字叫做{{ name }},我是一名{{ job }}。' let data = { name: 'Henry', gender: 'male', job: 'software engineer' } function...
```js function insertAfter(newEl, targetEl) { const parentEl = targetEl.parentNode; if (parentEl.lastChild === targetEl) { parentEl.appendChild(newEl); } else { parentEl.insertBefore(newEl, targetEl.nextSibling); } } ```
```js function promiseAll (arr = []) { return new Promise((resolve, reject) => { let ans = [] let count = 0 arr.forEach((item, index) => { Promise.resolve(item).then(res => { ans[index] =...
```js function deepClone (origin = {}, target = {}, map = new WeakMap()) { if (typeof origin !== 'object') return origin if (origin === null) return null if (origin instanceof...
```js // 写一个 Task 类 class Task { constructor() { // coding here this.queue = [] this.flag = false } add(fn, context, ...args) { // coding here let task =...
```js class EventEmitter { constructor () { if (!EventEmitter.instance) { this.task = {} EventEmitter.instance = this } return EventEmitter.instance } on (type, handler) { if (!this.task[type]) this.task[type] = [] this.task[type].push(handler)...
// 请实现一个方法, 对传入的异步任务尝试n次 // 若异步任务小于等于n次执行的某次为fullfilled, 则返回这次成功的结果 // 若异步任务n次执行均为rejected, 则返回最后的一次错误 ```js async function tryNTimes (asyncFn, n = 5) { let err let count = 1 while (n--) { try { console.log(`第${count++}次尝试`)...
# 不使用加号 + 实现异步相加函数 ## 题目描述 给定一个辅助函数如下: ```js function asyncAdd(a, b, callback) { setTimeout(function() { callback(a + b) }, 1000) } ``` 在不使用加号 + 的情况下,实现一个函数,实现两个异步相加,返回一个异步结果。示例如下: ```js sum(1,2,3,4,5,6,7,8,9,10,11).then(sum => console.log(sum)) ```...
最近在做 OCR 识别相关的工作,图片都是通过前端上传,遇到了几个问题。 1. 通过代码创建 input 标签来实现图片选择&拍照功能,在 iOS 手机上拍照确定后没有任何反应; 2. 在 OCR 识别过程中出现不少识别失败的情况。 为了解决以上两个问题,做了相关的探究。 ## iOS 设备拍照确定后没有反应 先看下唤起图片上传的代码: ```js const launchHtmlCamera = () => { const inputElement = document.createElement('input'); inputElement.id...