JavaScript之Array

一、数组

1、创建数组

new Array();
new Array(size);
new Array(element0, element1, …, elementn);
var a=[1,2,3]; //內建构造函数,不需要new也可以工作
说明:
(1)参数
参数 size 是期望的数组元素个数。返回的数组,length 字段将被设为 size 的值。
参数 element …, elementn 是参数列表。当使用这些参数来调用构造函数 Array() 时,新创建的数组的元素就会被初始化为这些值。它的 length 字段也会被设置为参数的个数。
(2)返回值
返回新创建并被初始化了的数组。
如果调用构造函数 Array() 时没有使用参数,那么返回的数组为空,length 字段为 0。
当调用构造函数时只传递给它一个数字参数,该构造函数将返回具有指定个数、元素为 undefined 的数组。
当其他参数调用 Array() 时,该构造函数将用参数指定的值初始化数组。
当把构造函数作为函数调用,不使用 new 运算符时,它的行为与使用 new 运算符调用它时的行为完全一样。

2、判断是否为数组

var a=[1,2,3];
function isArray(o) {
return Object.prototype.toString.call(o);
}
console.log(isArray(a)); //[object Array]

3、Array对象方法

方法
描述
concat()
连接两个或更多的数组,并返回结果。
join()
把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
pop()
删除并返回数组的最后一个元素
push()
向数组的末尾添加一个或更多元素,并返回新的长度。
reverse()
颠倒数组中元素的顺序
shift()
删除并返回数组的第一个元素
slice()
从某个已有的数组返回选定的元素
sort()
数组排序
splice()
向/从数组中添加/删除项目,然后返回被删除的项目。
toSource()
返回该对象的源代码
toString()
把数组转化成字符串,并返回结果
toLocaleString()
把数组转换为本地字符串。
unshift()
向数组的开头添加一个或更多元素,并返回新的长度。
valueOf()
返回数组对象的原始值

实例:
(1)concat()
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

var arr1=[1,2];
var arr2=[3];
var arr3=arr1.concat(arr2);
var arr4=arr1.concat(4,5,6);
var arr5=arr1.concat([4],[5,6]);
console.log(arr1); //[1,2]
console.log(arr2); //[3]
console.log(arr3); //[1,2,3]
console.log(arr4); //[1,2,4,5,6]
console.log(arr5); //[1,2,4,5,6]

(2)join()

var arr1=[1,2];
console.log(arr1.join(“…”)); //1…2
console.log(isArray(arr1.join(“…”))); //[object String]
console.log(arr1); //[1,2]不会改变数组

(3)pop()
pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。
改变原来数组

var arr1=[1,2];
console.log(arr1.pop()); //2
console.log(arr1); //[1]改变原数组

(4)push()

var arr2=[3];
console.log(arr2.push(1,1,1)); //4 返回新数组长度
console.log(arr2); //[3, 1, 1, 1] 改变数组

(5)reverse()

var arr5=[1,2,3];
console.log(arr5.reverse()); //[3, 2, 1]
console.log(arr5); //[3,2,1]改变数组

(6)shift()

var arr6=[0,2,5];
console.log(arr6.shift()); //0 返回数组的第一个元素值,如果为空,返回undefined
console.log(arr6); //[2,5] 改变数组

(7)slice()

语法:
arrayObject.slice(start,end)
参数:
start: 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end: 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
不会改变数组,返回一个新的数组
var arr7=[1,2,3,4,5];
console.log(arr7.slice(2)); //[3,4,5]
console.log(arr7); //[1,2,3,4,5]
console.log(arr7.slice(2,3)); //[3]
console.log(arr7.slice(-2,-1)); //[4]
console.log(arr7.slice(2,-1)); //[3,4]
console.log(arr7.slice(2,1)); //[]
console.log(arr7.slice(-2,-4)); //[]

(8)sort()

语法:
arrayObject.sort(fn);
参数:
fn: 可选,排序规则
数组在原数组上进行排序,改变数组,不生成副本
var arr8=[1,30,2,50,-1,100];
console.log(arr8.sort()); //[-1, 1, 100, 2, 30, 50]
console.log(arr8); //[-1, 1, 100, 2, 30, 50]
console.log(arr8.sort(function(a,b){return a-b;})); //[-1, 1, 2, 30, 50, 100]
console.log(arr8.sort(function(a,b){return b-a;})); //[100, 50, 30, 2, 1, -1]

(9)splice()

 返回删除的元素数组
 该方法将改变原始数组

var arr9=[1,2,3,4,5];
var arr10=[1,2,3,4,5];
console.log(arr9.splice(1,1,5,6)); // [2]
console.log(arr9); // [1, 5, 6, 3, 4, 5]
console.log(arr10.splice(1,-1,5,6)); // []
console.log(arr10); // [1, 5, 6, 2, 3, 4, 5]

(10)toString()

arrayObject.toString()
arrayObject 的字符串表示。返回值与没有参数的 join() 方法返回的字符串相同。

var arr11=[“a”,”b”,”c”];
console.log(arr11.toString()); //a,b,c

(11)unshift()

var arr13=[1,2];
console.log(arr13.unshift(0,1)); //4
console.log(arr13); //[0,1,1,2]

2、获取数组中数字的最大项和最小项
(1)运用apply
Math.max 可以实现得到数组中最大的一项:因为Math.max不支持Math.max([param1,param2])也就是数组,但是它支持Math.max(param1,param2…),所以可以根据apply的特点来解决 var max=Math.max.apply(null,array),这样就轻易的可以得到一个数组中的最大项(apply会将一个数组转换为一个参数接一个参数的方式传递给方法)这块在调用的时候第一个参数给了null,这是因为没有对象去调用这个方法,我只需要用这个方法帮我运算,得到返回的结果就行,所以直接传递了一个null过去。 用这种方法也可以实现得到数组中的最小项:Math.min.apply(null,array)

3、数组求和
(1)for

var sum=0;
var arr=[1,2,3];
for(var i=0;i< arr.length;i++){
sum+=arr[i];
}
console.log(sum);

(2)while

var sum=0;
var arr=[1,2,3];
var i=0
while (i

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值