综合开发

某公司前端招聘的三个面试题

微信扫一扫,分享到朋友圈

某公司前端招聘的三个面试题

做了某公司线上招聘的几个面试题,

  • 1,输入:“get1_install2_app3_list4_by5_android6”(每个单词后面总会携带一个数字,只有偶数才删掉),我不用循环只用正则怎么实现输出”get1InstallApp3ListBy5Android”?
  • 2,不能使用任何循环控制语句和迭代器的情况下实现一个0到1000的数组赋值。
  • 3,判断两个对象(注意特殊对象的处理)找出不一致的是哪个变量,返回的格式类似:”root变量-父变量-…-不一致的变量”的字符串。

大概写了下代码,没精确完成,然后就没有回复了:smile::smile::smile:

// 第一题
'get1_install2_app3_list4_by5_android6'.replace(/_S/g, item => {
return item.substring(1).toLocaleUpperCase();
});
// 第二题 方法1
Array.from(new Array(1001), (item, index) => index);
// 第二题 方法2
const arr = [];
let timer = setInterval(() => {
if (arr.length <= 1000) {
arr.push(arr.length);
} else {
clearInterval(timer);
}
});
// 第三题
let arrA = { mm: 434, a: 1, b: 2, c: { c: 1 }, d: 345, df: '32323', e: null, f: undefined, g: null };
let arrB = { nn: 434, a: 2, b: 2, c: { c: 3 }, d: '345', dc: '32323', e: null, f: undefined, g: undefined };
const checkObj = (a, b) => {
let returnArr = [];
let keyArrA = Object.keys(a);
let keyArrB = Object.keys(b);
// 取出差集
let chajiArr = keyArrA
.concat(keyArrB)
.filter((item, index, concatArr) => concatArr.indexOf(item) === concatArr.lastIndexOf(item));
returnArr = returnArr.concat(chajiArr);
// 取出并集
let bingjiArr = Array.from(
new Set(
keyArrA
.concat(keyArrB)
.filter((item, index, concatArr) => concatArr.indexOf(item) !== concatArr.lastIndexOf(item))
)
);
for (let itemKey of bingjiArr) {
let typeOfAVal = typeof a[itemKey];
let typeOfBVal = typeof b[itemKey];
if (typeOfAVal !== typeOfBVal) {
// 判断类型是否相同
returnArr.push(itemKey);
} else {
// 如果不是object,直接判断值
if (typeOfAVal !== 'object' && a[itemKey] !== b[itemKey]) {
returnArr.push(itemKey);
}
// 如果是object,判断JSON.stringify
// TODO(其实此处应该定义未不同,题目不明确,暂时如此写)
if (typeOfAVal === 'object' && JSON.stringify(a[itemKey]) !== JSON.stringify(b[itemKey])) {
returnArr.push(itemKey);
}
}
}
return returnArr;
};
console.log(checkObj(arrA, arrB));
复制代码

实战酷毙了的自定义View(三)

上一篇

协程在Android实际开发中到底带来哪些好处(一)

下一篇

你也可能喜欢

评论已经被关闭。

插入图片

热门栏目

某公司前端招聘的三个面试题

长按储存图像,分享给朋友