蔚蓝源自深海。 2022-05-04 13:54:20
递归调用来实现,这个想法是,最初您发送的请求数量上限为允许的最大值,并且这些请求中的每一个都应该在完成时继续递归发送,通过传入的索引来确定了urls 里面具体是那个URL,保证最后输出的顺序不会乱,而是依次输出;
function batchFetch(urls, concurrentRequestsLimit) {
return new Promise(resolve => {
var documents = [];
var index = 0;
function recursiveFetch(num) {
if (index === urls.length) {
return;
}
request(urls[index++]).then(r => {
documents[num] = r;
if (documents.length === urls.length) {
resolve(documents);
} else {
recursiveFetch(index);
}
});
}
for (let i = 0; i < concurrentRequestsLimit; i++) {
recursiveFetch(i);
}
});
}
var sources = [
'http://www.example_1.com/',
'http://www.example_2.com/',
'http://www.example_3.com/',
'http://www.example_4.com/',
'http://www.example_5.com/',
'http://www.example_6.com/'
];
// 测试用例
function request(url) {
return new Promise(r => {
const time = Math.random() * 1000;
setTimeout(() => r(url), time);
});
}
batchFetch(sources, 3).then(documents => {
console.log(documents);
});
蔚蓝源自深海。 2022-05-04 08:44:44
什么导致了 1px 问题?
在移动端 Web 开发中,UI 设计稿中设置边框为 1 像素,前端在开发过程中如果出现 border:1px
,测试会发现在 Retina 屏机型中,1px 会比较粗,即是较经典的移动端 1px 像素问题。
以 iphone6 为例,iphone6 的屏幕宽度为 375px ,设计师做的视觉稿一般是750px ,也就是 2x ,这个时候设计师在视觉稿上画了 1px 的边框,于是你就写了 border:1px
,so...1px边框问题产生了。
对设计师来说它的 1px
是相对于 750px
的(物理像素),对你来说你的 1px
是相对于 375px
的(css像素),实际上你应该是 border:0.5px
。
如何解决?
方案 | 优点 | 缺点 |
---|---|---|
0.5px实现 |
蔚蓝源自深海。 2022-05-03 12:24:17
ASCII 与 ISO-8859-1
ASCII码是最基础的编码,共定义了128个字符(0-127)。这些字符分为控制字符和可显示字符(26个基本拉丁字母、阿拉伯数目字和英式标点符号)。
ASCII使用了8位2进制,但最高位始终为0,并没有有效利用。而最高位置1,在空置的0xA0-0xFF的范围内,加入96个字母及符号,用以供使用附加符号的拉丁字母语言使用——这就是ISO-8859-1
编码。
ISO-8859-1
编码兼容ASCII编码,但因它没有法语使用的 œ、Œ、Ÿ 三个字母及芬兰语使用的 Š、š、Ž、ž ,故于1998年被ISO/IEC 8859-15所取代。
另外,结合UTF8定义,可以看到,UTF8并没有兼容ISO-8859-1
。
- 共 1 页
- 1
const randomArr = [];
while (randomArr.length<10) {
let num = parseInt(Math.random()*100);
if(randomArr.indexOf(num)==-1){
randomArr.push(num)
}
}
const sortArr = randomArr.sort((a,b)=>a-b);
//生成数组
console.log(sortArr)
const obj = {};
sortArr.forEach(el=>{
let cur = el+'';
if(cur.length==1){
if(!obj[0]){
obj[0] = [];
}
obj[0].push(el)
}else{
if(!obj[cur[0]]){
obj[cur[0]] = []
}
obj[cur[0]].push(el)
}
})
console.log(obj)
const arr = [];
for (const k in obj) {
arr.push(obj[k])
};
//输出结果
console.log(arr)
第 67 题:随机生成一个长度为 10 的整数类型的数组