// 用 forEach 开方 function square(num) { console.log(num,num*num); } var num = [1,2,3,4,5]; num.forEach(square); console.log(num); /* 1 1 2 4 3 9 4 16 5 25 */
1 2 3 4 5 6 7 8 9 10 11 12 13
/* every() 返回值为布尔类型,对于应用的所有元素,该函数返回 true,则该方法返回 true */ function isEven(num){ return num % 2 == 0; } var num = [2,4,6,8,10]; var even = num.every(isEven); if(even){ console.log("所有的数字都是偶数"); }else{ console.log("不是所有的数字都是偶数"); }
1 2 3 4 5 6 7 8 9 10 11 12 13
/* some() 与 every() 的不同就是只要有一个元素使改函数返回 true ,那么该方法就返回 true */ function isEven(num){ return num % 2 == 0; } var num = [1,2,3,4,5,6,7,8]; var someEven = num.some(isEven); if(even){ console.log("有些数字是偶数"); }else{ console.log("没有数字是偶数"); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/* reduce() 有两个功能,一是可以对数组元素进行求和,二是将数组元素连接成字符串。 */ fucntion add(num1,num2){ return num1 + num2; } var num = [1,2,3,4]; var sum = num.reduce(add); console.log(sum); // 10
function concat(str,i) { return str + i; } var words = ["I am ","a ","coder "]; var re = words.reduce(concat); console.log(re); // I am a coder
返回新数组的 map() 和 filter()
map 的作用与 forEach 是一样的,区别就是 map 函数返回的是一个新数组。
1 2 3 4 5 6
function addFive(grade){ return grade += 5; } var grade = [77,82,88,95,90]; var result = grade.map(addFive); console.log(result); // 82, 87, 93, 100, 95
var grades = [[88,86,82],[91,82,83],[77,72,79]]; var total = 0; var average = 0.0; for(var row = 0;row<grades.length;++row){ for(var col = 0;col<grades[row].length;++col){ total += grades[row][col]; } average = total/grades[row].length; console.log("student "+parseInt(row+1)+" average: "+average.toFixed(2)); // toFixed 表示按照 2 位来保留小数 total = 0; average = 0.0; }
var grades = [[88,86,82],[91,82,83],[77,72,79]]; var total = 0; var average = 0.0; for(var col = 0;col <grades.length;++col ){ for(var row= 0;row<grades[col ].length;++row){ total += grades[row][col]; } average = total/grades[col ].length; console.log("exam "+parseInt(col +1)+" average: "+average.toFixed(2)); total = 0; average = 0.0; }
function point(x,y){ this.x = x; this.y = y; } function show(arr){ for(var i=0;i<arr.length;i++){ console.log(arr[i].x + ", "+arr[i].y); } } var p1 = new Point(1,2); var p2 = new Point(2,4); var p3 = new Point(8,1); var p4 = new Point(2,9); var point = [p1,p2,p3,p4]; for(var i=0;i<point.lengh;i++){ console.log("Point "+parseInt(i+1)+": "+point[i].x+", "+point[i].y); }
上述程序的输出结果为:
Point 1: 1, 2 Point 2: 2, 4 Point 3: 8, 1 Point 4: 2, 9
也可以用之前的 puh() 等操作方法来操作对象数组
1 2 3 4 5 6 7
var p5 = new Point(11,13); point.push(p5); console.log("添加了 p5 后:"); show(point); point.shift(); console.log("删除第一个元素后:") show(point);
v1.5.2