filter函数:
返回True or False
var numbers = [1,2,3,4,5,4,3,2,1];
var filterResult = numbers.filter(function(item, index, array){
return (item > 2);
});
alert(filterResult); //[3,4,5,4,3]
map函数: 传入item(数组[i]),index(i),array(数组指针)
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]
sort函数: 要由对象自己调用
默认顺序:(>返回1,<返回-1,=返回0)
把>,<,=的规定权交给用户
往sort里面塞一个函数含两个参数(递归中的前一位数,后一个数),这里为了方便传参数采用了内嵌return的方式,效果一样。
function createComparisonFunction(propertyName) {
return function(object1, object2){ // object1和object2是默认的两个值,
var value1 = object1[propertyName]; //这里递归返回的是字典。
var value2 = object2[propertyName];
if (value1 < value2){
return -1;
}
else if (value1 > value2)
{
return 1;
}
else {
return 0;
}
};
}
var data = [{name: "Zachary", age: 28}, {name: "Nicholas", age: 29}];
data.sort(createComparisonFunction("name"));
alert(data[0].name); //Nicholas
Array的操作函数
var colors = new Array(20);
var colors = ["red", "blue", "green"];
drivers = new Array("Mike","John");
drivers.push(",test")
drivers.pop(",test")
drivers.shift() //取出并销毁队列中的第一个元素。
drivers.unshift(‘top1’,'top2') //将元素添加到队列开头。
alert(drivers.length)
- 一次性添加多个元素
var colors2 = colors.concat("yellow", ["black", "brown"]); - 切割数组
var colors = ["red", "green", "blue", "yellow", "purple"];
var colors2 = colors.slice(1);
var colors3 = colors.slice(1,4); - 倒序排列
a.reverse(); - 排序
a.sort(); - 查找元素
a.indexOf('被搜索元素'); // 含则返回0,不含则返回-1
判断是否是Array的数据结构:
if (Array.isArray(value))
{
}
利用splite进行操作
1.删除
a.splice(0,2)
会删除数组中的前两项
2.在插入red还有["green"]两项
a.splice(2,0,"red",["green"])
3.替换 (先替换a[2]再在该处插入"red",''green"两项)
a.splice (2,1,"red","green")
利用slice进行操作
b.slice(2,)
// 获取b[2]及以后的元素,但不删除他们。