JS:js编程题1(*****五颗星)
1.多表关联id查询
需求 : 两个数组,最终输出:
如: ['员工张三,29岁,工作于百度', '员工李四,26岁,工作于阿里巴巴',...]
<script> // 需求 : 两个数组,最终输出: // ['员工张三,29岁,工作于百度', '员工李四,26岁,工作于阿里巴巴',...] var employees = [{ name: "张三", // 员工名字 empId: 0, // 员工id age: 29, // 员工年龄 compId: 1, // 所属公司id }, { name: "李四", empId: 1, age: 26, compId: 2, }, { name: "王五", empId: 2, age: 28, compId: 1, }, { name: "李六", empId: 3, age: 32, compId: 3, }, ]; var companies = [{ name: "百度", // 公司名称 id: 1, // 公司id }, { name: "阿里巴巴", id: 2, }, { name: "腾讯", id: 3, }, ]; // 1.通过参数公司ID查询公司列表,返回公司名称 // 参数:公司id 返回:公司名称 function getCompaniesName(id){ // companies.forEach(item=>{ // if(item.id==id){ // // console.log(item.name)//百度 // return item.name // } // }) for(let i=0;i<companies.length;i++){ if(companies[i].id===id){ return companies[i].name } } } // console.log(getCompaniesName(1))//return的是 undefined,因为forEach无法使用return打断 // 目标数据结构['员工张三,29岁,工作于百度', '员工李四,26岁,工作于阿里巴巴',...] let empData=[] employees.forEach(item=>{ console.log(`员工${item.name},年龄:${item.age}岁,工作于${getCompaniesName(item.compId)}`) empData.push(`员工${item.name},年龄:${item.age}岁,工作于${getCompaniesName(item.compId)}`) }) console.log(empData) </script>
2.数组对象转二维数组
需求: 请把下列的数组变成是: [['苹果','玉米', '巴旦木'], ['香蕉', '西兰花', '坚果']....]
<script> // 需求: 请把下列的数组变成是: [['苹果','玉米', '巴旦木'], ['香蕉', '西兰花', '坚果']....] let food = [ { fruit: "苹果", veg: "玉米", nut: "巴旦木" }, { fruit: "香蕉", veg: "西兰花", nut: "坚果" }, { fruit: "火龙果", veg: "土豆", nut: "杏仁" }, { fruit: "榴莲", veg: "花菜", nut: "核桃" } ]; // 实现1:forEach和Object.values() // let foodArr=[] // food.forEach(item=>{ // foodArr.push(Object.values(item)) // }) // console.log(foodArr) // 实现2:map和Object.values() // map的使用: // let arr=[1,2,3,4] // let arr1=arr.map(item=>{ // 将每一次遍历返回的结果,合并成一个数组打包返回 // return item+1
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
前端面试题 文章被收录于专栏
前端面试的一些常问问题、问题的具体实现(可直接运行)以及底层原理