在 JavaScript 中,Array 是一种常用的数据结构,用于存储一组数据。随着 JavaScript 的发展,Array 也不断地得到了新的功能和特性。本文将介绍 JavaScript 中 Array 主要新增的内容,包括 ES6 以及之后的版本中的相关特性。
ES6 中的 Array 新增内容
扩展运算符
扩展运算符(Spread Operator)是 ES6 中新增的一个语法,可以将一个数组展开成多个参数。在 Array 中,可以使用扩展运算符将两个数组合并成一个新数组。
const arr1 = [1, 2, 3]; const arr2 = [4, 5, 6]; const arr3 = [...arr1, ...arr2]; console.log(arr3); // [1, 2, 3, 4, 5, 6]
Array.from()
Array.from() 方法可以将类数组对象或可迭代对象转换成一个新的数组。比如将字符串转换成一个字符数组:
const str = 'hello'; const arr = Array.from(str); console.log(arr); // ['h', 'e', 'l', 'l', 'o']
Array.of()
Array.of() 方法可以创建一个新数组,与 Array() 方法不同的是,Array() 方法在只传入一个参数时,会创建一个指定长度的数组,而 Array.of() 方法会将参数作为数组的元素。
const arr1 = Array(3); // [undefined, undefined, undefined] const arr2 = Array.of(3); // [3]
find() 和 findIndex()
find() 方法可以在数组中查找符合条件的第一个元素,并返回该元素,如果没有找到,则返回 undefined。findIndex() 方法与 find() 方法类似,不同的是它返回的是符合条件的元素在数组中的索引,如果没有找到,则返回 -1。
const arr = [1, 2, 3, 4, 5]; const result = arr.find(item => item > 3); // 4 const index = arr.findIndex(item => item > 3); // 3
fill()
fill() 方法可以将数组中所有元素替换成指定的值。
const arr = [1, 2, 3, 4, 5]; arr.fill(0); console.log(arr); // [0, 0, 0, 0, 0]
includes()
includes() 方法可以判断数组是否包含指定的元素,返回一个布尔值。
const arr = [1, 2, 3, 4, 5]; const result = arr.includes(3); // true
ES7 中的 Array 新增内容
includes()
ES7 中,includes() 方法新增了第二个参数,用于指定从哪个索引开始查找。
const arr = [1, 2, 3, 4, 5]; const result = arr.includes(3, 2); // true
ES8 中的 Array 新增内容
padStart() 和 padEnd()
padStart() 和 padEnd() 方法可以在字符串的前面或后面添加指定的字符,使字符串达到指定的长度。
const str = 'hello'; const result1 = str.padStart(10, 'x'); // 'xxxxxhello' const result2 = str.padEnd(10, 'x'); // 'helloxxxxx'
Object.entries()
Object.entries() 方法可以将对象转换成一个二维数组,其中每个子数组包含对象的 key 和 value。
const obj = { name: 'Tom', age: 18 }; const arr = Object.entries(obj); console.log(arr); // [['name', 'Tom'], ['age', 18]]
Object.values()
Object.values() 方法可以将对象的值转换成一个数组。
const obj = { name: 'Tom', age: 18 }; const arr = Object.values(obj); console.log(arr); // ['Tom', 18]
总结
本文介绍了 JavaScript 中 Array 主要新增的内容,包括 ES6、ES7 和 ES8 中的相关特性,包括扩展运算符、Array.from()、Array.of()、find()、findIndex()、fill()、includes()、padStart()、padEnd()、Object.entries() 和 Object.values() 等。熟练掌握这些新特性可以提高开发效率,编写更加简洁、高效的代码。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65650020d2f5e1655de5a18c