js:方法1. 数组
Array.every()###
array.every(f); array.every(f, o); f(array[i], i, array)
[1,2,3].every(function(x) { return x < 5; }) // => true
[1,2,3].every(function(x) { return x < 3; }) // => false
[].every(function(x) { return false; }); // => true: always true for []
//
if(!Array.prototype.every) {
Array.prototype.every = function (func /*,thisp*/) {
var i = 0,len = this.length >>> 0;
if(typeof func !== 'function') {
throw new TypeError();
}
var thisp = arguments[1];
for(; i < len; ++i) {
if(i in this && !func.call(thisp,this[i],i,this)) {
return false;
}
}
return true;
}
}
Array.some()###
array.some(predicate); array.some(predicate, o)
[1,2,3].some(function(x) { return x > 5; }) // => false: no elts are > 5
[1,2,3].some(function(x) { return x > 2; }) // => true: some elts are > 3
[].some(function(x) { return true; }); // => false: always false for []
//
if(!Array.prototype.some) {
Array.prototype.some = function (func /*,thisp*/) {
var i = 0,len = this.length >>> 0;
if(typeof func !== 'function') {
throw new TypeError();
}
var thisp = arguments[1];
for(; i < len; ++i) {
if(i in this && func.call(thisp,this[i],i,this)) {
return true;
}
}
return false;
}
}
Array.filter()
array.filter(f); array.filter(f, o); f(array[i], i, array)
[1,2,3].filter(function(x) { return x > 1; }); // => [2,3]
//
if(!Array.prototype.filter) {
Array.prototype.filter = function (func /*,thisp*/) {
var len = this.length >>> 0;
if(typeof func !== 'function') {
throw new TypeError();
}
var res = new Array(len);
var thisp = arguments[1];
for(var i = 0; i < len; ++i) {
if(i in this) {
var val = this[i];
if(func.call(thisp,val,i,this)) {
res.push(val);
}
}
}
return res;
}
}
Array.map()
array.map(f); array.map(f, o); a[i] = f(array[i], i, array)
[1,2,3].map(function(x) { return x * 2; }); // => [2,4,6]
//
if(!Array.prototype.map) {
Array.prototype.map = function (func /*,thisp*/) {
var len = this.length >>> 0;
if(typeof func !== 'function') {
throw new TypeError();
}
var res = new Array(len);
var thisp = arguments[1];
for(var i = 0; i < len; ++i) {
if(i in this) {
res[i] = func.call(thisp,this[i],i,this);
}
}
return res;
}
}
Array.forEach()
array.forEach(f); array.forEach(f, o); f(array[i], i, array)
var a = [1,2,3];
a.forEach(function(x,i,a) { a[i]++; }); // a is now [2,3,4]
//
if(!Array.prototype.forEach) {
Array.prototype.forEach = function (func /*,thisp*/) {
var len = this.length >>> 0;
if(typeof func !== 'function') {
throw new TypeError();
}
var thisp = arguments[1];
for(var i = 0; i < len; ++i) {
if(i in this) {
func.call(thisp,this[i],i,this);
}
}
}
}
Array.reduce()/ Array.reduceRight()
array.reduce(f); array.reduce(f, initial)
[1,2,3,4].reduce(function(x,y) { return x*y; }) // => 24: ((1*2)*3)*4
Array.concat()###
array.concat(value, ...)
var a = [1,2,3];
a.concat(4, 5) // => [1,2,3,4,5]
a.concat([4,5]); // => [1,2,3,4,5]
a.concat([4,5],[6,7]) // => [1,2,3,4,5,6,7]
a.concat(4, [5,[6,7]]) // => [1,2,3,4,5,[6,7]]
Array.indexOf() /Array.lastIndexOf()
array.indexOf(value); array.indexOf(value, start)
['a','b','c'].indexOf('b') // => 1
['a','b','c'].indexOf('d') // => -1
['a','b','c'].indexOf('a',1) // => -1
//
if(!Array.prototype.indexOf) {
Array.prototype.indexOf = function (elt /*,from*/) {
var len = this.length >>> 0,
from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if(from < 0) {
from += len;
}
for(; from < len; ++from) {
if(from in this && this[from] === elt)
return from;
}
return -1;
}
}
Array.join()###
array.join(); array.join(separator)
a = new Array(1, 2, 3, "testing");
s = a.join("+"); // s is the string "1+2+3+testing"
Array.slice()###
array.slice(start, end)
var a = [1,2,3,4,5];
a.slice(0,3); // Returns [1,2,3]
a.slice(3); // Returns [4,5]
a.slice(1,-1); // Returns [2,3,4]
a.slice(-3,-2); // Returns [3]; buggy in IE 4: returns [1,2,3]
Array.splice()###
array.splice(start, deleteCount, value, ...)
var a = [1,2,3,4,5,6,7,8]
a.splice(1,2); // Returns [2,3]; a is [1,4]
a.splice(1,1); // Returns [4]; a is [1]
a.splice(1,0,2,3); // Returns []; a is [1 2 3]
Array.reverse()###
array.reverse()
a = new Array(1, 2, 3); // a[0] == 1, a[2] == 3;
a.reverse(); // Now a[0] == 3, a[2] == 1;
Array.sort()###
array.sort(); array.sort(orderfunc)
// An ordering function for a numerical sort
function numberorder(a, b) { return a - b; }
a = new Array(33, 4, 1111, 222);
a.sort(); // Alphabetical sort: 1111, 222, 33, 4
a.sort(numberorder); // Numerical sort: 4, 33, 222, 1111
Array.push()/ Array.pop()###
array.push(value, ...); array.pop()
var stack = []; // stack: []
stack.push(1, 2); // stack: [1,2] Returns 2
stack.pop(); // stack: [1] Returns 2
stack.push([4,5]); // stack: [1,[4,5]] Returns 2
stack.pop() // stack: [1] Returns [4,5]
stack.pop(); // stack: [] Returns 1
Array.shift()###
array.shift()
var a = [1, [2,3], 4]
a.shift(); // Returns 1; a = [[2,3], 4]
a.shift(); // Returns [2,3]; a = [4]
Array.unshift()###
array.unshift(value, ...)
var a = []; // a:[]
a.unshift(1); // a:[1] Returns: 1
a.unshift(22); // a:[22,1] Returns: 2
a.shift(); // a:[1] Returns: 22
a.unshift(33,[4,5]); // a:[33,[4,5],1] Returns: 3
js:方法1. 数组的更多相关文章
- js中的数组和字符串的一些方法
数组的一些方法: 1.join()和split()方法 <script type="text/javascript">var x;var a=new Array();a ...
- (转)Silverlight调用的JS方法返回对象数组的处理方法
最近在做Silverlight应用,需要用Silverlight调用页面中Javascript方法.这 个JS方法返回一个对象数组给Silverlight.对于这个对象数组怎么在Silverlight ...
- 3个js函数 变成数组本身的3个方法
<!DOCTYPE html> 3个js函数 变成数组本身的3个方法 /** * 稀疏数组 变成不稀疏数组 * @params array arr 稀疏数组 * @return arry ...
- js二维数组定义和初始化的三种方法总结
js二维数组定义和初始化的三种方法总结 方法一:直接定义并且初始化,这种遇到数量少的情况可以用var _TheArray = [["0-1","0-2"],[& ...
- JS中split使用方法和数组中元素的删除
JS中split使用方法和数组中元素的删除 JS中split使用方法 <script language="javascript"> function spli(){ d ...
- js sort方法根据数组中对象的某一个属性值进行排序(实用方法)
js sort方法根据数组中对象的某一个属性值进行排序 sort方法接收一个函数作为参数,这里嵌套一层函数用来接收对象属性名,其他部分代码与正常使用sort方法相同. var arr = [ {nam ...
- js将伪数组转换为标准数组的多种方法
在js中,数组是特殊的对象,凡是对象有的性质,数组都有,数组表示有序数据的集合,而对象表示无序数据的集合. 那伪数组是什么呢,当然它也是对象,伪数组一般具有以下特点: 按索引方式存储数据: 具有len ...
- 【JS学习】数组过滤方法的使用filter
前言:本博客系列为学习后盾人js教程过程中的记录与产出,如果对你有帮助,欢迎关注,点赞,分享.不足之处也欢迎指正,作者会积极思考与改正. 使用效果: 可以返回参数函数为真的值 //情景:实现从stu数 ...
- JS 开发中数组常用的方法
大家有没有想过,js数组为什么会有这么多的方法,没错,就是为了不同场景下处理数据的需要,就像设计模式一样,都是为了能更好的处理当前场景的需要. 首先怎么创建一个数组呢, // 两种方式 // 1,构造 ...
随机推荐
- win7 ubuntu10.04双系统,重装win7后,修复双启动项
进入ubuntu的liveCD(即在试用ubuntu里),在终端里操作 首先要找到自己的ubuntu系统挂载在那个sda下面.可以用sudo fdisk -l 这个命令.然后: 1. sudo -i ...
- 【QT】C++ GUI Qt4 学习笔记2
Go To Cell 利用QT Desinger做好界面后加入的代码有 gotocelldialog.h #ifndef GOTOCELLDIALOG_H #define GOTOCELLDIALOG ...
- [Android Pro] Android 6.0 Root
reference : http://bbs.gfan.com/android-8001827-1-1.html 2. 刷机和刷入recovery 建议参考 置顶教程: [15年3月31日更新]Nex ...
- C --gettimeofday===获取某个程序经历的时间
#include <stdio.h> #include <sys/time.h> #include <time.h> int gettimeofday(struct ...
- NYOJ之Binary String Matching
Binary String Matching 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 Given two strings A and B, whose a ...
- 怎么把MVC的Controller拆分写到别的类库
以为很难…… 其实直接继承Controller 并且按MVC_Controllser规则命名. 然后网站项目引用该项目即可.
- python装饰器入门
按别人的教程弄的. 要清楚基于类和基于函数的实现的不同之处. #!/usr/bin/env python # -*- coding: utf-8 -*- ''' class entryExit(obj ...
- python中多线程与非线程的执行性能对比
此对比说明了一件事: 如果是IO型应用,多线程有优势, 如果是CPU计算型应用,多线程没必要,还有实现锁呢. #!/usr/bin/env python # -*- coding: utf-8 -*- ...
- POJ3415 Common Substrings(后缀数组 单调栈)
借用罗穗骞论文中的讲解: 计算A 的所有后缀和B 的所有后缀之间的最长公共前缀的长度,把最长公共前缀长度不小于k 的部分全部加起来.先将两个字符串连起来,中间用一个没有出现过的字符隔开.按height ...
- RSA 加解密算法
与DES不同,RSA算法中,每个通信主体都有两个钥匙,一个公钥一个私钥. 就是有2把钥匙1.使用publicKey可以对数据进行加密2.使用Key才能对数据进行解密单方向传输用公钥加密的数据,只有私钥 ...