这些例子主要是对array进行了测试,从中可以学到$continue,$break,$reverse等东西,需要测试哪个,将其释放出来即可。
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <title>Untitled Document</title>
- <script src="prototype.js"></script>
- <script>
- function arrayTest(){
- var arr = [1, 2, 3, 4, 8, 5, 4, 3];
- /** // 依次输出1,2,3,4,5,4,3
- arr.each(function(item, index){
- if (item < 6) {
- alert(item);
- }
- else {
- throw $continue;
- }
- });*/
- // 依次输出1,2,3,4
- arr.each(
- function (item, index) {
- if (item < 6) {
- alert(item);
- } else {
- throw $break;
- }
- }
- );
- /**//*
- var arr = [1,2,3,4,5];
- // arr = [1,2,3,4,5]
- arr.reverse(false);
- alert(arr.inspect());
- // arr = [5,4,3,2,1]
- arr.reverse();
- alert(arr.inspect());
- var arr = [1,2,3,4,5];
- arr.reverse();
- // 返回2在arr中的序号:1
- var index = arr.indexOf(2);
- alert(index)
- var arr = [1,2,3,4,5];
- // 不包含2和4,返回[1,3,5]
- var newArr = arr.without(2,4);
- alert(newArr.inspect());
- var arr = [1,2,3,4,5];
- arr.clear();
- alert(arr[2]);
- var arr = [1,2,3,4,5];
- var arr2 = [2,4,6,8,10];
- //[ [1,2],[2,4],[3,6],[4,8],[5,10]]
- var newArr = arr.zip(arr2);
- // [[1,4],[4,16],[9,36],[16,64],[25,100]]
- var newArr2 = arr.zip(
- arr2,
- function (item) {
- var newItem = item.collect(
- function (item, index) {
- return item * item;
- }
- );
- return newItem;
- }
- );
- alert(newArr.inspect());
- alert(newArr2.inspect());
- var arr = [5,2,3,1,4];
- // 将arr排序
- var arrarr = arr.sortBy(
- function (item, index) {
- return item;
- }
- );
- arr.each(
- function (item, index) {
- alert(item);
- }
- );
- var arr = [
- {root: 1, square: 1},
- {root: 2, square: 4},
- {root: 3, square: 9},
- {root: 4, square: 16},
- {root: 5, square: 25}
- ];
- var newArr = arr.pluck("square");
- alert(newArr[4]);
- var arr = [1,2,3,4,5];
- var ptArr = arr.partition(
- function (item, index) {
- return item%2 == 1;
- }
- );
- var oddArr = ptArr[0];
- var evenArr = ptArr[1];
- oddArr.each(
- function (item) {
- alert(item);
- }
- );
- evenArr.each(
- function (item) {
- alert(item);
- }
- );
- var arr = [1,2,3,4,5];
- // 最大值
- var max = -arr.min(
- function (item, index) {
- return -item;
- }
- );
- // 最小值
- var min = arr.min();
- alert(max);
- alert(min);
- var arr = [1,2,3,4,5];
- // 最大值
- var max = arr.max();
- // 最小值
- var min = -arr.max(
- function (item, index) {
- return -item;
- }
- );
- alert(max);
- alert(min);
- // 求集合中每一个元素的平方
- Number.prototype.square = function () {
- return this * this;
- }
- var arr = [1,2,3,4,5];
- var newArr = arr.invoke("square");
- alert(newArr[4]);
- // 计算arr中所有数的乘积
- var factorial = arr.inject(
- 1,
- function (accumulator, item, index) {
- return accumulator * item;
- }
- );
- alert(factorial)
- // 判断集合中是否包含”2“
- var inc = arr.include(2);
- alert(inc);
- var arr = ["12345", "abc2", "cde", "fgh", "132ba"];
- var newArray = arr.grep(
- /2/,
- function (item, index) {
- return item + " contains 2";
- }
- )
- newArray.each(
- function (item) {
- alert(item);
- }
- );
- var arr = [1,2,3,4,5];
- // 返回集合中所有的奇数
- var oddArr = arr.findAll(
- function (item, index) {
- return item%2 == 1;
- }
- );
- alert(oddArr[2]);
- // 返回第一个大于3的元素
- var ele = arr.find(
- function (item, index) {
- return (item > 3);
- }
- );
- alert(ele);
- var newArr = arr.collect(
- function (item, index) {
- return item * (index + 1);
- }
- );
- var hasNegative = arr.any(
- function (item, index) {
- return (item < 0);
- }
- );
- // 测试集合中的所有元素是否大于0
- var allPositive = arr.all(
- function(item, index) {
- return (item > 0);
- }
- )
- alert(allPositive);
- arr.each(
- function (item, index) {
- alert("arr[" + index + "] = " + item);
- }
- );*/
- }
- </script>
- </head>
- <body onload="arrayTest()">
- </body>
- </html>
本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/413342,如需转载请自行联系原作者