`
wutao33543
  • 浏览: 65069 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Prototype实战教程----9.Array

阅读更多
<script src="prototype.js"></script>
<script>
/**//*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 arr = 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>
分享到:
评论

相关推荐

    prototype.js.cn.doc.rar

    三、Prototype.js实战应用 1. **模块化开发**:Prototype.js的模块化设计思路可以帮助开发者组织代码,提高代码复用性。使用`Object.extend()`或`Prototype.include()`方法,可以将功能划分到不同的模块中。 2. **...

    js实战之全部替代一个子串为另一个子串.pdf

    另一种实现字符串替换的方法是使用String.prototype.split()方法将字符串分割成数组,然后使用Array.prototype.join()方法将数组连接成新的字符串。例如: `const s = 'hello. hello. hello.';` `s.split('hello. '...

    Ajax实战:Prototype与Scriptaculous篇pdf

    **Ajax实战:Prototype与Scriptaculous篇** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,...

    最新Prototype手册

    学习Prototype.js,可以参考官方文档,查阅各种教程和示例代码,同时,Stack Overflow 和其他开发者论坛是获取帮助和分享经验的好地方。社区的存在使得解决遇到的问题变得更加容易。 总结,"最新Prototype手册"是...

    PROTOTYPE 官方+个人整理的帮助文档

    2. **对象和函数**:学习Prototype提供的各种对象和函数,如Array、String、Function、Object等的扩展,以及Ajax请求的实现。 3. **DOM操作**:熟悉Prototype如何简化HTML元素的选择、操作和事件处理,如`$()`, `$$...

    第4章--JavaScript对象.pptx

    JavaScript提供了一系列内置对象,如`Array`、`Date`、`Math`等,它们具有预定义的方法和属性,方便开发者处理数据和进行各种计算。 4.5 实战:产生n个不重复随机数 实际编程中,可能会遇到生成指定数量不重复...

    prototype从入门到精通

    三、Prototype实战技巧 1. **模块化开发**:Prototype支持模块化开发,通过`Object.extend()`和`Class.include()`等方法,可以实现代码的模块化组织,提高代码复用性和可维护性。 2. **性能优化**:理解Prototype...

    《prototype1.4完全攻略》

    1. **对象扩展与原型链**:Prototype利用JavaScript的原型机制,使得可以方便地为原生对象添加方法和属性,如Array、String等。这使得开发者能更高效地处理数据和对象。 2. **$()函数**:这是Prototype中最知名的...

    prototypejs

    这个库引入了许多实用的类和方法,如Array、String、Function、Object等的扩展,使得JavaScript的代码更加简洁易读。 二、核心特性 1. **对象扩展**:PrototypeJS通过原型链机制增强了JavaScript的对象模型,允许...

    JS抽奖

    - 使用`Array.prototype.indexOf()`或`Array.prototype.includes()`来检查抽中的奖项是否已经出现过,防止重复。 4. **DOM操作** - `document.querySelector()`和`document.querySelectorAll()`用于选取DOM元素,...

    05-vue优化.md

    同时,修改数组的元素需要使用`Array.prototype.splice`方法,而不是直接赋值,以确保Vue能够检测到变化。 #### SPA页面滚动问题 单页面应用(SPA)在页面切换时,通常会遇到页面滚动到顶部的问题。为了解决这个...

    mootools中文帮助文档

    这个“mootools中文帮助文档”提供了全面的指南和教程,帮助开发者理解和应用MooTools的各种功能。 1. **MooTools的基本概念** - **模块化编程**:MooTools的核心设计理念是模块化,允许开发者按需引入所需的功能...

    day03-js高级讲义.zip

    例如,`Array.prototype.map()`、`filter()`和`reduce()`等,这些都是常见的高阶函数,它们能对数组进行高效操作。 5. **异步编程**:JS是非阻塞的,使用回调函数、Promise和async/await处理异步操作。理解事件循环...

    2021腾讯华为、前端面试题集(基础篇)1

    * 如何使用 ES6 的 Array.prototype.includes() 方法? * ES6 中的 Object.assign() 方法是什么? 七、ES6 数组面试题 ES6 中的数组有很多新的特性,在面试中,可能会被问到关于数组的相关问题,例如: * 如何...

    Java Script精彩实例教程

    例如,`Array.prototype.map`用于创建原数组的映射,`Date.now()`则返回当前时间戳。 事件处理是JavaScript与用户交互的关键,例如点击按钮、鼠标移动等。事件监听器可以使用`addEventListener`方法添加,而`...

    learning-Extjs国外第一本Ext译本

    【学习ExtJS】深入理解与实战应用 在深入学习ExtJS之前,首先需要了解它的基本概念和开发环境的搭建。ExtJS是一个强大的JavaScript框架,它提供了丰富的用户界面组件,用于构建复杂的Web应用程序。通过前一章的概念...

    imooc-js编程练习

    你可能需要练习使用`Array.prototype.map()`, `filter()`, `reduce()`等方法进行数组操作,理解闭包和高阶函数的概念,并尝试实现柯里化(Currying)和函数组合。 3. **异步处理**:在JavaScript中,异步编程是处理I/...

    functional-light-js-exercises

    1. `Array.prototype.map()`: 对数组的每个元素应用一个函数,并返回新数组。这个操作不会改变原数组。 ```javascript const numbers = [1, 2, 3, 4]; const squared = numbers.map(num =&gt; num * num); console.log...

    微信小程序项目实例-LOL战绩查询,能力、攻略(源码+截图)

    在"团队战绩"查询部分,开发者需要处理更复杂的数据结构,比如按队伍分组的战绩信息,这可能需要使用到JavaScript的数组操作函数,如`Array.prototype.map()`、`Array.prototype.filter()`等。此外,团队成员的详细...

Global site tag (gtag.js) - Google Analytics