检测数组
我们可以使用 Array.isArray() 方法判断一个对象是不是数组。
下面是一个简单的使用实例:
var normalColors = ["red", "green", "blue"];
normalColors[normalColors.length] = "black";
normalColors[normalColors.length] = "white";
console.log("normalColors is Array ? ", Array.isArray(normalColors));
输出结果:
输出结果JavaScript Array 对象的其他方法可以参考这里
迭代方法
every() 对数组中的每一项运行给定函数,如果函数对每一项都返回 true,则返回 true。
filter() 对数组中的每一项运行给定函数,返回函数会返回 true 的项组成的数组。
forEach() 对数组中的每一项运行给定函数。该方法没有返回值。
map() 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
some() 对数组中的每一项运行给定函数,如果该函数对任一项返回 true,则返回 true。
以上方法都不会修复数组中的现有项。
下面是使用实例:
var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var everyResult = numbers.every(function(item, index, array){
return item > 2;
});
console.log("everyResult: \t", everyResult);
var someResult = numbers.some(function(item, index, array){
return item > 2;
});
console.log("someResult: \t", someResult);
var filterResult = numbers.filter(function(item, index, array){
return item > 2;
});
console.log("filterResult: \t", filterResult);
var mapResult = numbers.map(function(item, index, array){
return item * 2;
});
console.log("mapResult: \t", mapResult);
numbers.forEach(function(item, index, array){
console.log("array"+index+": ", item, array[index]);
});
输出结果:
输出结果reduce 和 rightReduce 方法
使用实例:
var numbers = [1, 2, 3, 4, 5];
var sum = numbers.reduce(function(prevItem, curItem, index, array){
console.log("prevItem & curItem: \t", prevItem, "&", curItem);
return prevItem + curItem;
});
console.log("sum: \t", sum);
sum = numbers.reduce(function(prevItem, curItem, index, array){
console.log("prevItem & curItem: \t", prevItem, "&", curItem);
return prevItem + curItem;
}, -10);
console.log("sum: \t", sum);
sum = numbers.reduce(function(prevItem, curItem, index, array){
console.log("prevItem & curItem: \t", prevItem, "&", curItem);
return prevItem + curItem;
}, -5);
console.log("sum: \t", sum);
输出结果:
输出结果从输出结果我们就可以理解第二个参数的意义了。
rightReduce 方法从相反的方向执行。就不再举例了。
网友评论