`
wsj123
  • 浏览: 154237 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Javascript数组操作

    博客分类:
  • JS
阅读更多
Javascript数组操作

1.1颠倒数组元素顺序
1.1.1 reverse()方法

语法:
        arrayObject.reverse()
注意:该方法会改变原来的数组,而不会创建新的数组。
实例:
var myArr = ["1","2","3"];
document.write(myArr + "<br />"); //运行结果:1,2,3
document.write(myArr.reverse()); //运行结果:3,2,1

1.2判断某元素是否在数组内
1.2.1 indexOf方法

功能:返回给定元素在数组中的第一个索引值,否则返回-1。
语法:
        array.indexOf(item[, index]);
        item,要查找的元素。
        index,开始查找指定元素的索引值,默认值为 0 (即在整个数组中查找指定元素)。
注意:
        index大于或等于数组长度,则停止查找并返回-1。
        index是一个负值,则将其作为数组末尾的一个抵消,即-1表示从最后一个元素开始查找,-2表示从倒数第二个元素开始查找 ,以此类推。

兼容性:不兼容IE6~8。
实例:
var arr = new Array(1, 2, 3);  
var backVal=arr.indexOf(2);
console.log(backVal); //运行结果:1

1.2.2自定义函数
function contains(arr, obj) {
    var i = arr.length;
    while (i--) {
        if (arr[i] === obj) { return true; }
    }  
    return false;
}
var arr = new Array(1, 2, 3);  
contains(arr, 2); //返回true
contains(arr, 4); //返回false

1.2.3给Array增加一个函数
Array.prototype.contains = function (obj) {
    var i = this.length;
    while (i--) {
        if (this[i] === obj) { return true; }
    }
    return false;
}
[1, 2, 3].contains(2);  //返回true
[1, 2, 3].contains('2');  //返回false

注意:如果是用JQuery的话,可以用$.inArray(value, array);函数。
1.3删除数组中的某一值
1.3.1 delete方法

功能:只是将被删除的元素变成了undefined,而其他元素的键值还是不变。
兼容性:IE4及以上版本都支持。
实例:
var arr = ['a','b','c','d'];
delete arr[1];
for(index in arr){
    console.log(arr[index]);
}
运行结果:a c d
for(var i=0;i<arr.length;i++){
    console.log(arr[i]);
}
运行结果:a undefined c d

1.3.2 splice方法
功能:删除或者替换数组中的某一值。删除某一值后数组的数组的长度、索引也会相应地改变。
语法:
        splice(index,len[,item]);
        index:数组开始下标。
        len:替换/删除的长度。
        item:替换的值。
兼容性:IE5.5及以上版本都支持。
实例一:删除
var arr = ['a','b','c','d'];
arr.splice(1,1);
for(var i=0;i<arr.length;i++){
    console.log(arr[i]);
}
运行结果:a c d

实例二:替换
var arr = ['a','b','c','d'];
arr.splice(1,1,1);
for(var i=0;i<arr.length;i++){
    console.log(arr[i]);
}
运行结果:a 1 c d

实例二:替换及添加
var arr = ['a','b','c','d'];
arr.splice(1,1,1,2);
for(var i=0;i<arr.length;i++){
    console.log(arr[i]);
}
运行结果:a 1 2 c d

1.4遍历数组
1.4.1forEach()方法

功能:遍历数组,使数组的每一项都执行一次给定的函数。
语法:
        array.forEach(callback[, thisArg]);
        callback:在数组每一项上执行的函数,接收三个参数:currentValue(当前项的值)、index(当前项的索引)和array(数组本身)。
        thisArg:可选参数。用来当作callback 函数内this值的对象,即callback函数的执行上下文。
兼容性:不兼容IE6~8。
1.4.2 map()方法
功能:遍历数组,返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组,而保持原数组不变。
语法:
        array.map(callback[, thisArg]);
        callback:在数组每一项上执行的函数,接收三个参数:currentValue(当前项的值)、index(当前项的索引)和array(数组本身)。
        thisArg:可选参数。用来当作callback 函数内this的值的对象,即callback 函数的执行上下文。
兼容性:不兼容IE6~8。
1.4.3 forEach()和map()比较
共同点:
1、都是循环遍历数组中的每一项。
2、forEach()和map()里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原始数组arr。
3、匿名函数中的this都是指Window。
4、只能遍历数组。
5、兼容性相同,IE8及以下版本不支持。
不同点:
1、forEach()没有返回值,而map()有返回值,可以return 出来。
实例:
var arr_0 = [12,23,24,42,1];
var res_0 = arr_0.forEach(function (item,index, arr) {
    arr [index] = item*10;
})
console.log(res_0); //执行结果:undefined
console.log(arr_0); //执行结果:[120, 230, 240, 420, 10],对原来的数组产生改变
var arr_1 = [12,23,24,42,1];
var res_1 = arr_1.map(function (item,index, arr) {
    return item*10;
})
console.log(res_1); //执行结果:[120,230,240,420,10]
console.log(arr_1); //执行结果:[12,23,24,42,1],原来的数组不变

1.4.4 filter()方法
功能:遍历数组,返回所有通过指定函数测试的元素创建的新数组。
语法:
        arr.filter(callback[, thisArg]);
        callback:在数组每一项上执行的函数,接收三个参数:currentValue(当前项的值)、index(当前项的索引)和array(数组本身)。
        thisArg:可选参数。用来当作callback函数内this的值的对象,即callback 函数的执行上下文。
兼容性:不兼容IE6~8。
实例:
var arr = ["关羽","张翼德","赵子龙","黄忠","马超"];
var res = arr.filter(function(ele,index,array){
    if(ele.length>2){ return true; }
    return false;
});
console.log(arr); //执行结果:["关羽", "张翼德", "赵子龙", "黄忠", "马超"]
console.log(res); //执行结果:["张翼德", "赵子龙"]

注意:return会结束定义的function函数,但filter()方法内部有一个类似for循环的句式对元素进行依次执行function函数。
1.4.5 some()方法
功能:遍历数组,数组中的每一个元素执行一次指定函数,直到找到一个使得指定函数返回一个true的值。如果找到则返回 true,否则返回false。
语法:
        arr.some(callback[, thisArg]);
        callback:在数组每一项上执行的函数,接收三个参数:currentValue(当前项的值)、index(当前项的索引)和array(数组本身)。
        thisArg:可选参数。用来当作callback 函数内this的值的对象,即callback 函数的执行上下文。
兼容性:不兼容IE6~8。
实例:
var arr = [ 1, 2, 3, 4, 5, 6 ];  
var res=arr.some(function(item,index,array){
    console.log(item);
    return item > 3;
});
//执行结果:1 2 3 4
console.log(arr); //执行结果:[1, 2, 3, 4, 5, 6],原数组不变
console.log(res); //执行结果:true

1.4.6 every()方法
功能:遍历数组,数组中的每个元素执行一次指定函数,只有所有元素都在指定函数中都返回true,则返回true,否则返回false。
语法:
        arr.every(callback[, thisArg]);
        callback:在数组每一项上执行的函数,接收三个参数:currentValue(当前项的值)、index(当前项的索引)和array(数组本身)。
        thisArg:可选参数。用来当作callback 函数内this的值的对象,即callback 函数的执行上下文。
兼容性:不兼容IE6~8。
实例:
var arr = [ 6, 5, 4, 3, 2, 1 ];
var res = arr.every( function( item, index, array ){
    console.log(item);
    return item > 3;
});
//执行结果:6 5 4 3
console.log(arr); //执行结果:[6, 5, 4, 3, 2, 1],原数组不变
console.log(res); //执行结果:false

1.5数组的拼接
1.5.1 concat方法

功能:用于连接两个或多个数组。
语法:
        arrayObject.concat(arrayX,arrayX,......,arrayX);
        arrayX:必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。
注意:该方法返回一个新的数组。该数组是通过把所有arrayX参数添加到arrayObject中生成的。
实例一:拼接数组元素
var arr = [1,2,3];
var newArr=arr.concat(4,5);
console.log(arr); //执行结果:[1, 2, 3],原数组不变
console.log(newArr); //执行结果:[1, 2, 3, 4, 5]

实例二:拼接数组
var arr_0 = ["George","John","Thomas"];
var arr_1 = ["James","Adrew", "Martin"];
var newArr=arr_0.concat(arr_1);
console.log(arr_0); //执行结果:["George", "John", "Thomas"],原数组不变
console.log(arr_1); //执行结果:["James", "Adrew", "Martin"],原数组不变
console.log(newArr); //执行结果:["George", "John", "Thomas", "James", "Adrew", "Martin"]

1.6数组的截取
1.6.1 slice方法

功能:从已有的数组中返回选定的元素。
语法:
        arrayObject.slice(start,end);
        start:必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
        end:可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
注意:该方法返回一个新的数组,包含从start到end(不包括该元素)的arrayObject中的元素。
实例:
var arr = ["George","John","Thomas"];
var newArr=arr.slice(1,2);
console.log(arr); //执行结果:["George", "John", "Thomas"],原数组不变
console.log(newArr); //执行结果:["John"]

分享到:
评论

相关推荐

    Javascript数组操作整理.rar

    本资料"Javascript数组操作整理"聚焦于JavaScript中的数组操作,旨在帮助开发者更好地理解和掌握相关知识。 1. 创建数组: JavaScript提供了多种创建数组的方式,如字面量语法`var arr = [元素1, 元素2, ...]`,或...

    JavaScript数组操作函数汇总

    JavaScript数组操作函数是编程中非常基础且重要的部分,它们提供了对数组进行各种操作的方法,包括添加、删除、合并以及转换等。以下是对标题和描述中提及的数组操作函数的详细说明: 1. **push()**: `push()` 函数...

    javaScript数组操作笔迹

    下面将详细介绍标题与描述中提到的几个关键的JavaScript数组操作知识点。 ### join(delimiter) `join()` 方法用于将数组的所有元素连接成一个字符串,元素之间通过指定的分隔符 `delimiter` 进行分隔。例如,对于...

    Javascript数组及其操作WORD版

    资源名称:Javascript数组及其操作 WORD版内容简介:本文档主要讲述的是Javascript数组及其操作;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看 资源太大,传百度网盘了,链接在附件中,有...

    Javascript数组及其操作

    Javascript 数组及其操作 Javascript 数组是一种基本的数据结构,用于存储和操作多个值。数组是一种复杂的数据类型,可以存储不同的数据类型,如数字、字符串、对象等。 创建数组 在 Javascript 中,可以使用三种...

    JavaScript splice 数组操作(删除,插入)

    JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)...

    javascript 数组操作实用技巧

    1、concat方法 [作用] 将多个数组联合起来,这个方法不会改变现存的数组,它只返回了所结合数组的一份拷贝。 [语法] arrayObj.concat(array1,array2,…) [实例] [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 2...

    JavaScript数组特性与实践应用深入详解

    这是JavaScript数组操作中的常用手法,因为它可以方便地处理数组的动态增长和缩减。 当需要从数组中间删除或替换元素时,可以使用splice方法。该方法通过指定开始删除的索引和需要删除的元素数量,以及可能的插入的...

    javascript中数组、对象

    文档"Javascript数组操作整理.doc"可能包含了对数组常见操作的详细总结,如遍历方法(`for`循环、`forEach`、`map`等)、查找方法(`indexOf`、`find`、`filter`等)、排序方法(`sort`)、转换方法(`concat`、`...

    javascript数组操作方法小结和3个属性详细介绍

    在这篇文章中,我们将深入探讨JavaScript数组的创建、元素访问与修改、添加、删除、截取、合并、拷贝、排序以及字符串化等操作,并介绍数组对象的三个重要属性。 1. **数组的创建**: - `new Array()`:创建一个空...

    javascript 数组操作详解

    JavaScript数组操作非常灵活,拥有许多内置的方法来执行各种任务。 数组的创建有多种方式。最简单的方式是使用数组字面量,例如 `var arrayObj = [];`。另一个方法是使用 `Array` 构造函数来创建数组,可以指定数组...

    JavaScript数组用法详解

    "JavaScript数组用法详解" JavaScript 数组是一种非常重要的数据结构,它是一种可以存储多个元素的集合。 JavaScript 数组的元素可以是任何类型,包括数字、字符串、对象、函数等。数组的长度可以动态地变化,可以...

    js数组相减简单示例【删除a数组所有与b数组相同元素】

    扩展阅读中提及的专题,例如《JavaScript数组操作技巧总结》、《JavaScript遍历算法与技巧总结》等,为读者提供了更多的学习资源。通过这些资源,读者可以更加全面地掌握JavaScript中数组操作的多种技巧和方法,从而...

    JavaScript 数组 增加 和 删除

    在JavaScript中,虽然原生提供了多种数组操作方法,但在某些场景下可能需要更加灵活的控制方式。以下是一个自定义的数组插入方法 `insert` 的实现: ```javascript Array.prototype.insert = function (vVal, nIdx)...

    分析JavaScript数组操作难点

    文章《分析JavaScript数组操作难点》从多个角度探讨了这些问题,并提供了解决方案。 首先,文章指出了不应当使用for_in循环遍历数组。for_in循环是为遍历对象的属性而设计的,当它应用于数组时,会带来几个问题。第...

    JavaScript数组对象JSON学习笔记

    #### 一、JavaScript 数组操作 在 JavaScript 中,数组是一种常用的数据结构,用于存储多个值。本部分主要介绍如何创建数组、访问数组元素以及对数组进行各种操作。 ##### 创建数组 1. **使用 `new Array()` 构造...

    JavaScript常用数组操作方法1

    以下是对标题和描述中提到的一些JavaScript数组操作方法的详细说明: 1. **concat()**: `concat()` 方法用于合并两个或多个数组,但不改变原始数组。它返回一个新数组,包含所有数组的元素。例如: ```...

    javascript数组操作总结和属性、方法介绍

    JavaScript数组是一种...JavaScript数组操作非常灵活,方法众多,不仅能进行简单的添加、删除和查找操作,还能进行复杂的数组转换和处理。正确掌握和使用这些方法,对于进行高效的数据处理和算法实现是非常有帮助的。

Global site tag (gtag.js) - Google Analytics