数组

JavaScript中创建数组有两种方式

(一)使用 Array 构造函数:

 

var arr1 = new Array(); //创建一个空数组
var arr2 = new Array(20); // 创建一个包含20项的数组
var arr3 = new Array("lily","lucy","Tom"); // 创建一个包含3个字符串的数组

 

(二)使用数组字面量表示法:

 

var arr4 = []; //创建一个空数组
var arr5 = [20]; // 创建一个包含1项的数组
var arr6 = ["lily","lucy","Tom"]; // 创建一个包含3个字符串的数组

 

数组的方法有数组原型方法,也有从object对象继承来的方法,这里我们只介绍数组的原型方法,数组原型方法主要有以下这些:

join()
push()和pop()
shift() 和 unshift()
sort()
reverse()
concat()
slice()
splice()
indexOf()和 lastIndexOf() (ES5新增)
forEach() (ES5新增)
map() (ES5新增)
filter() (ES5新增)
every() (ES5新增)
some() (ES5新增)
reduce()和 reduceRight() (ES5新增)

这里着重讲一join()和shift() 和 unshift()

1、join()

join(separator): 将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符,该方法只接收一个参数:即分隔符。

1
2
3
4
var arr = [1,2,3];
console.log(arr.join()); // 1,2,3
console.log(arr.join("-")); // 1-2-3
console.log(arr); // [1, 2, 3](原数组不变)

通过join()方法可以实现重复字符串,只需传入字符串以及重复的次数,就能返回重复后的字符串,函数如下:

1
2
3
4
5
function repeatString(str, n) {
return new Array(n + 1).join(str);
}
console.log(repeatString("abc", 3)); // abcabcabc
console.log(repeatString("Hi", 5)); // HiHiHiHiHi

3、shift() 和 unshift()

shift():删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined 。 
unshift:将参数添加到原数组开头,并返回数组的长度 。

这组方法和上面的push()和pop()方法正好对应,一个是操作数组的开头,一个是操作数组的结尾。

1
2
3
4
5
6
7
var arr = ["Lily","lucy","Tom"];
var count = arr.unshift("Jack","Sean");
console.log(count); // 5
console.log(arr); //["Jack", "Sean", "Lily", "lucy", "Tom"]
var item = arr.shift();
console.log(item); // Jack
console.log(arr); // ["Sean", "Lily", "lucy", "Tom"]

代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>

</body>
</html>
<script>
var arr1=[]
console.log(arr1)//[]
arr1[0]=1
arr1[1]=2
console.log(arr1)//[1,2]
arr1[1]=3
console.log(arr1)//[1,3]

var arr2=[1,2,3,4,5,6,7]
arr2.shift()
console.log(arr2,"arr2")
arr2.unshift(0)
console.log(arr2)
arr2.pop()
console.log(arr2)//[]
arr2.push(8)
console.log(arr2)//[]

var arr3=[1,2,3,4,5,6,7]
arr3.splice(2,0,'a','b','c')
console.log(arr3)

var a=1,b=[],c={}
console.log(typeof(c))//number

console.log(Array.isArray(c))
//判断变量c是不是数组,如果是数组,则输出“是数组”三个字
//否则输出“不是数组”四个字
if(Array.isArray(c))
console.log('数组')
else
console.log('非数组')

Array.isArray(c)?console.log('s'):console.log('bs')

//语法糖

// var arrC=[1,2,3,4,5,6,7,8]
// for (var i=0;i<arrC;i++){
// console.log(arrC[i])
// }
//
// for (var i=arrC.length-1;i>=0;i--){
// console.log(arrC[i])
// }

// for(i in arrC){
// console.log(arrC[i])
// }

for (i or arrC){
console.log(i)
}

</script>


 

posted @ 2021-12-14 09:27  赴人间惊鸿艳  阅读(52)  评论(0)    收藏  举报