忘羡

文章 评论 浏览 28

忘羡 2022-05-04 13:56:14
var arr = [2, 10, 3, 4, 5, 11, 10, 11, 20];
arr.sort(function(a, b) {
	return a - b
});
arr = [...new Set(arr)];
var result = [];
arr.forEach(function(val) {
	let index = parseInt(val / 10);
	if (!result[index]) {
		result[index] = [];
	}
	result[index].push(val);
})
result = result.filter(arr => arr.length > 0);
console.log(result);

第 67 题:随机生成一个长度为 10 的整数类型的数组

忘羡 2022-05-04 13:55:19

左移3位 相当于乘8 然后再减去自己 不就是7倍了吗 减法的移位运算可以转换加法的移位运算

整数: n

背景知识: -n = ~(n-1) = ~n+1

转换方程

n*7 ==> n<<3-n ==> add(n<<3, ~n+1) ==> add(n<<3, add(~n, 1))

function add(m,n){ 
     return n?add(m^n, (m&n)<<1):m; 
}

add(n<<3,  add(~n, 1))
14

通用场景

不用加减乘除运算符,求整数n的m倍

这个就不难了 哈哈

第 102 题:不用加减乘除运算符,求整数的 7 倍

忘羡 2022-05-04 13:32:19

这里对上面的例子做一个扩展

const promise = new Promise((resolve, reject) => {
  console.log(1);
  resolve(5);
  console.log(2);
}).then(val => {
  console.log(val);
});

promise.then(() => {
  console.log(3);
});

console.log(4);

setTimeout(function() {
  console.log(6);
});

执行结果: 124536

请问为什么3在val之前?

3是在5后面打印出来的啊,第一轮事件循环的时候,microtask queue里面先添加的promise.resolve(5).then((val)=>{console.log(val)}),后添加的promise.then(() => {
console.log(3);
});

第 13 题:Promise 构造函数是同步执行还是异步执行,那么 then 方法呢?

更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文