面试题3道
1,输入:“get1_install2_app3_list4_by5_android6”(每个单词后面总会携带一个数字,只有偶数才删掉),不用循环只用正则怎么实现输出"get1InstallApp3ListBy5Android"?
2,不能使用任何循环控制语句和迭代器的情况下实现一个0到1000的数组赋值。
3,判断两个对象(注意特殊对象的处理)找出不一致的是哪个变量
问题一:
let str2 = 'get1_install2_app3_list4_by5_android6'; let result2 = str2.replace(/\_[a-z]/g, $1 => $1.toLocaleUpperCase()).replace(/[246]|_/g, ''); console.log(result2); // get1InstallApp3ListBy5Android
问题二:
// 有个 Array.from(arrayLike[, mapFn[, thisArg]])方法可以用 let newArr = Array.from(new Array(1000), (val, idx) => { return idx; }) // console.log(newArr);
问题三:
let a = {a: 1, b: 2, c: {c: 1}}; let b = {a: 2, b: 2, c: {c: 3}}; const theObjectValueEqual5 = (a, b) => { let result = []; let aProps = Object.keys(a); let bProps = Object.keys(b); for (let i = 0; i < aProps.length; i++) { let aCompare = a[aProps[i]]; let isExist = false; for (let j = 0; j < bProps.length; j++) { let bCompare = b[bProps[j]]; if (JSON.stringify(aCompare) === JSON.stringify(bCompare)) { isExist = true; break; } } console.log(isExist, aProps[i]) if (!isExist) { result.push(aProps[i]); } } return result; } console.log(theObjectValueEqual5(a, b)); // ["a", "c"] 不一样的变量名数组