专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 职业指南 互联网的Js中级面试题及技巧

互联网的Js中级面试题及技巧

更新时间:2022-12-22 14:43:52 来源:动力节点 浏览748次

如果大家想要成为成熟的程序员,那么Js就一定是需要掌握的,因为在工作中大家难免需要解决一些较为复杂的代码问题,成为一定经验的程序员,就更应该要懂得利用Js如何高效的解决问题:

js中级面试题

1.在数组或对象中提取值

因为数组和对象这样的数据结构在js开发中被大量的应用,所以有中级程序员应该熟练掌握对数组和对象的处理技巧。

let input = [
  { name: "John", age: 21, city: "New York" },
  { name: "Mike", age: 28, city: "Moscow" },
  { name: "Danny", age: 30, city: "London" },
  { name: "Lisa", age: 26, city: "Paris" },
  { name: "Sophie", age: 19, city: "Berlin" },
];

本题要求提取数组中的每个对象的name属性存储到一个数组中,结果应该如下:

["John", "Mike", "Danny", "Lisa", "Sophie"];

一般的解法是,定义一个空数组,遍历数组,在每次循环中使用内置的push()方法取出并存储对象的name属性。

let input = [
  { name: "John", age: 21, city: "New York" },
  { name: "Mike", age: 28, city: "Moscow" },
  { name: "Danny", age: 30, city: "London" },
  { name: "Lisa", age: 26, city: "Paris" },
  { name: "Sophie", age: 19, city: "Berlin" },
];

const extractValues = (arr, property) => {
  let output = [];

  for (let i = 0; i < arr.length; i++) {
    output.push(arr[i][property]);
  }

  return output;
};

let result = extractValues(input, "name");
console.log(result);

上面的代码虽然可以解决问题,但是有一个问题,中级程序员应该使用ES6语法而不是ES5语法解决问题,所以让我们使用ES6的map函数代替循环。

const extractValues = (arr, property) => {
  let output = arr.map((element) => element[property]);

  return output;
};

所以本题考察的是如何使用ES6语法处理数组和对象。

2.将字符串向左旋转 k 次

和数字类型一样,字符串是js中最常用的数据类型之一。中级js程序员应该对内置的字符串函数比较熟练。 给定一个字符串和数字。

let string = "javascript"
let n = 2

按照上面的要求,给定的字符串应该向左旋转两次。 以下是期望得到结果。

"vascriptja"

解答该题的最简单方法是使用内置的 substring() 函数。

function rotateLeft(string, n) {
  let part1 = string.substring(n, string.length);
  let part2 = string.substring(0, n);

  let output = part1 + part2;
  return output;
}

let string = "javascript";
let n = 2;

console.log(rotateLeft(string, n));

当 n = 2 时,前两个字符“ja” 被删除并添加到末尾,这会将字符串向左旋转两次。

因此,首先提取除前两个字符以外的子串(part1),然后使用相同的函数提取剩余的两个字符(part2)作为子串。 最后,连接两个子串。

3.计算两个日期之间的天数

初学者通常没有任何日期工作经验,但中级程序员必须处理过日期,因为处理日期是JavaScript开发的常见工作。

给定两个DD/MM/YYYY 格式的日期。

let date1 = "08/10/2021";
let date2 = "09/11/2021"

要解决这一问题,需要正确使用内置日期函数。

const findDays = (date1, date2) => {
  let d1 = new Date(date1);
  let d2 = new Date(date2);

  let difference = d2.getTime() - d1.getTime();

  let output = difference / (1000 * 3600 * 24);

  return Math.floor(output);
};

let date1 = "11/01/2021";
 let d1 = new Date(date1);
 console.log(d1.getTime(); 
let date2 = "11/03/2021";

console.log(findDays(date1, date2));

这里,首先转换日期的格式,然后使用 getTime()方法获取日期的时间戳。

以上就是“互联网的Js中级面试题及技巧”,你能回答上来吗?如果想要了解更多的Java面试题相关内容,可以关注动力节点Java官网。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>