数组(concat、apply、splice)

14 阅读2分钟

2.2

1、concat函数:

(1)字符串和数组都可以使用concat函数,一个或多个字符串可以使用concat拼接(多个用逗号隔开),数字类型也会被转义为字符串类型。一个或多个数组也可以使用该函数合并数组(多个用逗号隔开)。

(2)字符串和数组混用情况:哪种类型调用concat函数,就按那个类型返回结果,详情请看数组和字符串混用实例

var str = 1
var str2 = '2'
var str3 = '3'

console.log(''.concat(str,str2,str3))//123
var arr = [1,2]
var arr2 = [3,4]
console.log(arr.concat(arr2))//[1, 2, 3, 4]
var arr = [1,2]
var str ='3'
console.log(arr.concat(str))//[1, 2, '3']
console.log(str.concat(arr))//[1, 2, '3']//31,2
var fruitarray = []
fruitarray[0] = ['strawberry','orange'];
fruitarray[1] = ['lime','peach','banana'];
fruitarray[2] = ['tangerine','apricot'];
fruitarray[3] = ['raspberry','kiwi'];
// 扁平化数组
var newArray = fruitarray.concat.apply([],fruitarray)
console.log(newArray[5])//tangerine

2、splice函数:

splice方法接收3个参数。第一个参数是必填,它是进行拼接的索引。第二个参数是可选的,即删除的数目。第三个参数也是可选的,它是一组替换元素。如果索引是负的,将从数组末尾开始拼接该元素,而不是从数组开头进行

var animals = new Array("dog","cat","seal","walrus","lion","cat")
animals.splice(animals.indexOf("walrus"),1)
animals.splice(animals.lastIndexOf("cat"),1,"monkey")
console.log(animals.toString())//dog,cat,seal,lion,monkey
var animals = ["cat","walrus","lion","cat"]
// 换入新的元素
animals.splice(-1,1,"monkey")
console.log(animals)//['cat', 'walrus', 'lion', 'monkey']
var animals = ["cat","walrus","lion","cat"]
// 删除第二个索引的元素以后的所有元素
animals.splice(2)
console.log(animals)//["cat","walrus","cat"]
var animals = ["cat","walrus","lion","cat"]
// 用两个元素替代第二个索引的元素
animals.splice(2,1,"zebra","elephant")
console.log(animals)// ['cat', 'walrus', 'zebra', 'elephant', 'cat']
var charSets = ["ab","bb","cd","ab","cc","ab","dd","ab"]
// 替换元素
while(charSets.indexOf('ab')!=-1){
    charSets.splice(charSets.indexOf("ab"),1,"**")
}
console.log(charSets)//['**', 'bb', 'cd', '**', 'cc', '**', 'dd', '**']

// 删除新元素
while(charSets.indexOf("**")!= -1){
    charSets.splice(charSets.indexOf("**"),1)
}
console.log(charSets)//['bb', 'cd', 'cc', 'dd']