您的位置:首页 > 移动开发 > Objective-C

《JavaScript高级程序设计》——JS中Object与Array类型常用方法。

2016-04-04 00:39 627 查看
//创建对象的两种方法(另一种:对象字面量两表示法)
var person1 = new Object();
person1.age = 29;
person1.name = "Nicholas";

var person2 = {				//另一种创建对象的方法(对象字面量表示法),每个属性之间加逗号,最后一个不能加。
"name": "Nicholas",		//属性名可以不使用字符串。
"age": 29
};

console.log(person2.name);

var obj = new Object();
var obj = {};				//这两种写法等价。使用对象字面量时不会调用Object的构造函数。

//调用属性的两种方法。
function display(args){
console.log(args.name);
console.log(args.age);
console.log(args["name"]);	//方括号表示法,如果想用变量操作属性,可以选用。
}

display({
name: "Steve",
age: 24
});

//Array
var arrays = Array(3);	//可以省略new
arrays.push(3);
console.log(arrays);	//,,,3

//lenth(可以直接往脚标length上添加数据,相当于push)
var colors = ["hehe","haha","heihei"];
colors.length = 2;
console.log(colors[2]);      //undefined 改变length以后移除了。

var colors = ["hehe","haha","heihei"];
colors[colors.length] = "xixi";		//相当于push

console.log(colors);    //会在后台调用toString方法

//采用字面量表示法定义实例中的函数。
var obj = new Object({
toString: function(){
return "StringString";
},
toLocaleString: function(){
return "LocaleString";
}
});

//每个Object中的toString方法都是逐个调用元素的toString(),toLocaleString是逐个调用元素的toLocaleString然后拼接。
console.log(obj.toString());			//String		因为被复写的String方法
console.log(obj.toLocaleString());		//LocaleString 因为被复写的toLocaleString方法

//使用join方法:返回一个元素之间含有指定分隔符的Array
var colors = ["hehe","haha","heihei"];
console.log(colors.join("啊啊"));		//设定字符串输出时的分隔符。

//数组的栈与队列方法
var colors = ["hehe","haha","heihei"];
colors.push("xixi");
console.log(colors);
colors.pop();
console.log(colors);		//JS中的数组可以进行栈方法, push进栈 pop出栈。
console.log(colors.pop());	//数组pop时返回弹出的值。
colors.push("xixi");
console.log(colors);

console.log(colors.shift());  //队列方法shift(),取出头上的数据,取出了hehe
console.log(colors);		//hehe不见了

colors.unshift("hehe","hehe")//队列方法unshift() 插队,从队列前端推入。
console.log(colors);
//同时用unshift和pop可以模拟反向队列,从前端入队,后端出队。

array = new Array(2,50,38,3,7);
console.log(array.reverse());
console.log(array);
console.log(array.sort());
console.log(array);

//数组的sort方法默认以字符串的方法比较,想要自定义比较方法就传入一个函数(可以采取匿名函数)
array = new Array(2,50,38,3,7);
array.sort(function(value1,value2){		//传入函数以进行比较。
return value1-value2;
});
console.log(array);

//截取(slice)
var array = new Array(2,50,38,3,7);
var array2 = array.slice(2,4);				//截取数组从2到4(但不包括4)
console.log(array2);

var array = new Array(2,50,38,3,7);			//splice(粘接)
console.log(array.splice(2,3));			//传入两个参数,删除:从第二项开始删除三项。返回的是被删除的项。
console.log(array);

var array = new Array(2,50,38,3,7);
console.log(array.splice(2,2,"hehe","haha"));	//传入多个参数,再从第二项开始删除两项以后,插入"hehe"和"haha"。(第二个参数为0则不删除)
console.log(array);

//枚举函数。
var array = new Array(2,50,38,3,7);
var result1 = array.forEach(function(item){		//枚举函数forEach。没有返回值。
return item>5;
});
console.log(result1);		//undefined

var result2 = array.every(function(item){		//枚举函数every。数组内元素全部返回true才返回true。
return item>5;
});
console.log(result2);		//false

var result3 = array.map(function(item){		//枚举函数map。调用函数结果的数组。
return item>5;
});
console.log(result3);

var result4 = array.filter(function(item){	//枚举函数filter。返回结果是true函数执行内容的数组。
return item>5;
}
)
console.log(result4);

var result5 = array.some(function(item){	//枚举函数some。调用结果结果是true内容的数组。
return item>5;q
});
console.log(result5);

//归并方法
var values = [10,20,30,40,50];
var sum = values.reduce(function(num1,num2){
return num1+num2;
});
console.log(sum);			//150,从左到右将数组中的元素按照指定函数相加。遍历从左端开始

var sum = values.reduceRight(function(num1,num2){
return num1+num2;
});
console.log(sum);			//150,从右到左将数组中的元素按照指定函数相加。遍历从右端开始
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: