1
var a = { name: "hello" },
b = { name: "hi" };
function exchange(a, b) {
var c = b;
b = a;
a = c;
a.name = a.name + "1";
b.name = b.name + "2";
console.info(a.name, b.name);
}
exchange(a, b);
console.info(a.name, b.name);
var a = { name: "hello" },
b = { name: "hi" };
function exchange(a, b) {
var c = b; //hi
b = a; // hello
a = c; //hi
a.name = a.name + "1";
b.name = b.name + "2";
console.info(a.name, b.name); //hi 1 hello2
}
exchange(a, b);
//此时的a和b已经被改变
console.info(a.name, b.name); //hello2 hi1
考察的是基本类型和引用类型,可参考我的博客
2
时间比较题:输入一组时间字符串,求出这组时间中的间隔最小的时间差(分),如输入“23:59" , "00:00",返回 1;假设输入数组的长度大于 2 且小于 2000;
function timeDiff(timeArr) {
var arr = timeArr
.map((item) => {
const [hour, minute] = timePoint.split(":");
// 先将hour和minute转换为Number类型,再计算时间
return Number(hour * 60) + Number(minute);
})
.sort((val1, val2) => {
//排序
return val1 - val2;
});
var len = arr.length;
var min = 1440 - arr[len - 1] + arr[0];
for (var i = 1; i < len; i++) {
if (arr[i] - arr[i - 1] < min) {
min = arr[i] - arr[i - 1];
}
}
return min;
}
console.log(timeDiff(["23:50", "00:00", "00:05"]));
3
假如有一个接口 getUersByld
(userld
),返回用户信息的 json
;要求 getUersById
能缓存用户信息,即同样的 userId
请求仅向服务器发送一次,其余从内存中获取,以提高效率。高阶要求:假设有 getUersById
,getShoollnfoById
, getDevicelnfoById
...都需要缓存结果,提供一个通用的辅助函数。
//接口封装函数
const User = {
getUersById: data => {
return request({
url: "/getUersById",
method: "post",
data
});
},
....
};
// 使用此方法
cacheFunc('getUersById', data)
function cacheFunc(type, data) {
const msg = localStorage.get(type)
if (!msg)
Users[type](data).then(res => {
res.code === 200 ? localStorage.setItem(type, res.data) : null
})
}
}
4
输入一个数字,交换两位数字,最多交换一次,输出可以得到的最大的数字;如输入:1234
交换 1
,4
后,得到 4231
;
function sortFunc(num) {
var str = num + "";
var arr = [];
var big = [];
// 切割重组
for (var i = 0; i < str.length; i++) {
arr.push(parseInt(str[i]));
big.push(parseInt(str[i]));
}
//排序
big.sort(function (a, b) {
return b - a;
});
// 寻找替换
for (var i = 0; i < arr.length; i++) {
if (big[i] != arr[i]) {
for (var j = arr.length - 1; j >= 0; j--) {
if (arr[j] == big[i]) {
arr[j] = arr[i];
arr[i] = big[i];
break;
}
}
break;
}
}
return parseInt(arr.join(""));
}
console.log(sortFunc(1234));
评论区