javascript高级程序设计第五章总结5.1

1、object类型创建方法

//new 方法
var person=new object();
person.name="AA";
person.age=25;

//对象字面量方法

var person={
  name="AA",    //注意这里用的是逗号不是分号
  age=25 
}

2、Array类型创建方法

方法一
var colors=new Array("blue","green","red");

方法二省略new
var colors=Array("blue","green","red");

方法三数组字面量方法
var colors=["blue","green","red"];

3、Array类型栈方法,pop(),push(),后进先出,shift(), unshift()先进先出。push()、unshift()返回的是数组的长度,pop(),shift()返回的是删除的项

var colors=new Array();
var count=colors.unshift("red","green");
alert(count);   //2
count=colors.unshift("black");
alert(count);  //3
var item=colors.pop();
alert(item);  //green
alert(colors.length); //2

4、Array类型reverse()和sort()重排方法。recerse()简单的将数组内的顺序颠倒,sort()将数组的项转换成字符串再比较大小,局限0,1,5,10,15的排列顺序为0,1,10,15,5解决局限性可以用一个函数

function compare(num1,mun2)
{
  if(value1<value2)
  {
     return -1;  
   }else if(value1>value2)
  {
    return 1;  
  }else{
    return 0;
  }      
};
var values=[0,1,15,10,5];   //这里通过计算为[-4,-2,4,2,0]
values.sort(compare);
alert(values);     //0,1,5,10,15

5、Array类型concat()方法会先创建一个副本,然后将接收到的参数添加到副本的末尾,最后返回这个重新构建的数组。

var colors=["red","green","blue"];
var colors2=colors.concat("yellow",["black","brown"]);

alert(colors);  //red,green,blue;
alert(colors2); //red,green,blue,yellow,black,brown

6、Array类型slice()方法,在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束之间的项-但不包括结束位置的项。注意,slice()不会影响原始数组

var colors=["red","green","blue","yellow","purple"];
var colors2=colors.slice(1);
var colors3=colors.slice(1,4);

alert(colors);  //red,green,blue,yellow,purple;
alert(colors2); //green,blue,yellow,purple;
alert(colors3);  green,blue,yellow

7、Array类型splice()方法,主要用途是向数组中插入项。

删除项,例如splice(0,2)删除数组中的前两项

插入项,例如splice(2,0,"red","green")会从当前数组的位置2开始插入字符串"red","green"

替换项,例如splice(2,1,"red","green")会删除当前数组位置2的项,然后再从位置2开始插入字符串"red","green"

8、Array类型位置方法,indexof(),lastIndexof(),这两个方法都接收2个参数,要查找的项和(可选的)表示查找起点位置的索引。indexof()是从头开始,lastIndexof()从末尾开始查找

9、Array类型迭代方法,every()和some()相似,用于检查数组中的项是否满足某个条件。返回值为布尔值,every()必须每一项都为true,才会返回true,some()只要一项返回true就会返回true

var numbers=[1,2,3,4,5,4,3,2,1];
var everyResult=numbers.every(function(item,index,arry){
  return (item>2);
});
alert(everyResult);  //false;

var someResult=numbers.some(function(item,index,array){
  return (item>2);
});
alert(someResult); //true

10、Array类型迭代方法filter()方法,利用指定函数确定是否在返回的数组中包含某一项,返回符合条件的项组成的数组

var numbers=[1,2,3,4,5,4,3,2,1]
var filterResult=numbers.filter(function(item,index,array){
  return (item>2);
});
alert(filter); //[3,4,5,4,3]

11、Array数组迭代方法,map(),返回每次调用的结果组成的数组

var numbers=[1,2,3,4,5,4,3,2,1]
var mapResult=numbers.map(function(item,index,array){
   return item*2;
});
alert(mapResult); //[2,4,6,8,10,8,6,4,2]

12、、Array数组迭代方法forEach()只是对数组中的每一项运行传入的函数。没有返回值。

var numbers=[1,2,3,4,5,4,3,2,1]
numbers.forEach(function(item,index,array){
  //执行某些操作
})

13、Array数组归并方法reduce()和reduceRight().这两个方法都会迭代数组的所有项,然后构建一个最终返回的值,其中reduce()方法从数组的第一项开始,逐个遍历到最后一项,reduceRight()是从数组的最后一项开始向前遍历到第一项。接收4个参数:前一个值,当前值,项的索引和数组对象。

//使用reduceRight()方法求和
var values=[1,2,3,4,5];
var sum=values.reduceRight(function(pre,cur,index,array){
  return pre+cur;
});
alert(sum); //15
原文地址:https://www.cnblogs.com/yuyu9988/p/3354590.html