JS从零开始(26)

95 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第26天,点击查看活动详情

fill()

这个容易理解,就是一个简单的填充方法,如:

//覆盖填充
var array = ['北京', '天津', '上海', '广东', '深圳', '成都'];
var newarray = array.fill('香港');
console.log(array,newarray);

image.png

ps:当我们只传递一个参数时,往往都会将原数组中的所有数组元素覆盖成传递的参数。

那么我们又该如何进行指定位置的填充呢?如何填充指定个数的元素呢?

var array = ['北京', '天津', '上海', '广东', '深圳', '成都'];
var newarray = array.fill('香港', 0, 3);//填充索引值为0~3的数组元素,左闭右开
console.log(JSON.stringify(array));//["香港","香港","香港","广东","深圳","成都"]
console.log(JSON.stringify(newarray));//["香港","香港","香港","广东","深圳","成都"]

如上所示,fill方法传递参数跟其他方法不太一样,他的传递的参数是写在前面,元素索引值写在后面,而其他方法传递的参数和索引值则相反。

合并(拆解)数组

方法解释说明是否改变原数组(字符串)
concat()将两个或多个数组连接起来,返回值是连接后的新数组
join() 将数组转换成字符串,返回值是转换后的字符串
split()将字符串转换为数组,返回值是转换后的数组

concat()

使用方法如下:

var array1 = ['a', 'b', 'c', 'd', 'e', 'f'];
var array2 = ['g', 'h', 'i', 'j', 'k'];
var array3 = ['l', 'm', 'n', 'o'];
//连接数组
var array4 = array1.concat(array2, array3);
console.log(JSON.stringify(array4));//["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o"]

注意:使用此方法是一定要看清是concat()而不是contact()!!!

还有一种合并数组的方法,是利用三个省略号...这种展开语法,如:

var array2 = ['g', 'h', 'i', 'j', 'k'];
var array3 = ['a', 'b', 'c', 'd', 'e', 'f', ...array2];
console.log(JSON.stringify(array3));//["a","b","c","d","e","f","g","h","i","j","k"]

但是!!

如果中括号里面传递的是两个数组名,则合并的数组有嵌套,如:

var array1 = ['a', 'b', 'c', 'd', 'e', 'f'];
var array2 = ['g', 'h', 'i', 'j', 'k'];
var array3 = [array1, ...array2];
console.log(JSON.stringify(array3));//[["a","b","c","d","e","f"],"g","h","i","j","k"]

注意:这种方法一定只能是3个省略号,多一个不行少一个不行!