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,构造 ...
随机推荐
- Maven实现直接部署Web项目到Tomcat7(转)
转载自:http://my.oschina.net/angel243/blog/178554 以前在项目中很少使用Maven,最近自己学习了一下maven,真的是非常强大的项目构建工具,对于依赖包的定 ...
- springmvc多文件上传
@RequestMapping(value = "/upload", method = RequestMethod.POST) public void upload(@Reques ...
- HTML超链接
打开网页在 想要查看的位置右键单击 审查元素 则可以查看代码 点击图片右键单独打开 则可以查看图片位置 一.超链接 a标签 <a href="地址"> ...
- Memcache使用
//需要下载memcache 服务 然后 在命令里面 安装和启动服务 //引用 Memcached.ClientLibrary.dllpublic class MemcacheHelper { pub ...
- 【leetcode】Max Points on a Line(hard)☆
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. ...
- Vim 强大的配置
新建文件.vimrc,然后复制如下内容,并将该文件放到vim安装目录下 map <F9> :call SaveInputData()<CR> func! SaveInputDa ...
- 编译QtAV工程库
去https://github.com/wang-bin/QtAV下载源代码 去https://sourceforge.net/projects/qtav/files/depends/QtAV-dep ...
- 解决eclipse Maven 主项目不能刷新maven
项目->.project -> 增加<?xml version="1.0" encoding="UTF-8"?><projectD ...
- 2014年十个优秀的免费CDN加速服务-国内和国外免费CDN
这是一篇总结近几年来网络上出现了各类免费CDN服务的文章,文章本来应该早就发出来的,但是因为近期的各种原因一直拖到现在.之前部落已经总结了近几年来的优秀免费空间,新手朋友不必在茫茫“网”海中寻找免费空 ...
- 数据结构和算法 – 8.链表
8.1.数组存在的问题 在处理列表的时候数组是常用的数据结构.数组可以对所存储的数据项提供快速地存取访问,而且它很易于进行循环遍历操作.当然,数组已经是语言的一部分了,用户不需要使用额外的内存,也不需 ...