JS笔试题之每日练习09-18
作者:互联网
// 第一题:使用promise,实现一个延迟函数delay
// 本题可以使用浏览器开发者工具进行调试,请务必调试通过,不能有语法错误
const delay = (time) => {
//你的代码
return new Promise((resolve) => {
setTimeout(resolve, time);
})
};
const main = async() => {
await delay(2000)
console.log("Hello world") // 最早 2 秒之后才执行
};
main();
//--------------------------------------------
// 第二题:将数组扁平化并去除其中重复数据,最终得到一个升序且不重复的数组
// 本题可以使用浏览器开发者工具进行调试,请务必调试通过,不能有语法错误
const arr = [
[1, 2, 2],
[3, 4, 5, 5],
[6, 7, 8, 9, [11, 12, [12, 13, [14]]]], 10
];
function flatArr(arr) {
// TODO: 你的代码
const bphArr = arr.flat(Infinity);
//console.log(new Set(bphArr));
const newArr = [...new Set(bphArr)];
newArr.sort((a, b) => {
return a - b
});
// console.log(newArr);
return newArr;
};
console.log(flatArr(arr));
//------------------------------------------------------
// 第三题
// 说明:实现一个方法,用于比较两个版本号(version1、version2)
// 如果version1 > version2,返回1;如果version1 < version2,返回-1,其他情况返回0
// 版本号规则`x.y.z`,xyz均为大于等于0的整数,至少有x位
// 示例:
// compareVersion('0.1', '1.1.1'); // 返回-1
// compareVersion('13.37', '1.2 '); // 返回1
// compareVersion('1.1', '1.1.0'); // 返回0
// 本题可以使用浏览器开发者工具进行调试,请务必调试通过,不能有语法错误
function compareVersion(version1, version2) {
// TODO: 你的代码
const v1 = version1.split(".");
const v2 = version2.split(".");
function factory(arr) {
let arrsum = 0;
arr.forEach((item) => {
if (arr.length < 3) {
arr.push("00")
}
if (item.length < 2) {
item += "0"
}
arrsum += +item
})
return arrsum
};
const v1sum = factory(v1);
const v2sum = factory(v2);
if (v1sum < v2sum) {
return -1
} else if (v1sum === v2sum) {
return 0
} else {
return 1
}
};
console.log(compareVersion('1.1', '1.1.0'))
标签:arr,return,version1,18,09,console,JS,compareVersion,const 来源: https://blog.csdn.net/JavaSleep/article/details/120384965