🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## ## **声明数组** ``` //第一种 var A=[12,78,[78,78,89]] console.log(A) //第二种 var B=new Array(); B[0]=12 B[1]=34 B[2]=56 console.log(B) //第三种 var C=new Array(3); C[0]=12 C[1]=34 C[2]=56 console.log(C) //第四种 var D=new Array(45,78,89,45); console.log(D) ``` [https://www.runoob.com/jsref/jsref-obj-array.html](https://www.runoob.com/jsref/jsref-obj-array.html) 属性 length ## Array 对象方法 | 方法 | 描述 | | --- | --- | | [concat()](https://www.runoob.com/jsref/jsref-concat-array.html) | 连接两个或更多的数组,并返回结果。`arr.concat(arr2, ..., arrn)` | | [copyWithin()](https://www.runoob.com/jsref/jsref-copywithin.html) | 从数组的指定位置拷贝元素到数组的另一个指定位置中。~~【IE】~~ | | [entries()](https://www.runoob.com/jsref/jsref-entries.html) | 返回数组的可迭代对象。~~【IE】~~ | | [every()](https://www.runoob.com/jsref/jsref-every.html) | 检测数值元素的每个元素是否都符合条件。【IE9】 | | [fill()](https://www.runoob.com/jsref/jsref-fill.html) | 使用一个固定值来填充数组。~~【IE】~~ | | [filter()](https://www.runoob.com/jsref/jsref-filter.html) | 检测数值元素,并返回符合条件所有元素的数组。【IE9】 | | [find()](https://www.runoob.com/jsref/jsref-find.html) | 返回符合传入测试(函数)条件的数组元素。~~【IE】~~ | | [findIndex()](https://www.runoob.com/jsref/jsref-findindex.html) | 返回符合传入测试(函数)条件的数组元素索引。~~【IE】~~ | |flat | 。~~【IE】~~ | | flatMap| 。~~【IE】~~ | | [**forEach()**](https://www.runoob.com/jsref/jsref-foreach.html) | 数组每个元素都执行一次回调函数。【IE9】 | | [from()](https://www.runoob.com/jsref/jsref-from.html) | 通过给定的对象中创建一个数组。~~【IE】~~ | | [includes()](https://www.runoob.com/jsref/jsref-includes.html) | 判断一个数组是否包含一个指定的值。~~【IE】~~ | | [**indexOf()**](https://www.runoob.com/jsref/jsref-indexof-array.html) | 搜索数组中的元素,并返回它所在的位置。【IE9】 | | [isArray()](https://www.runoob.com/jsref/jsref-isarray.html) | 判断对象是否为数组。【IE9】 | | [**join()**](https://www.runoob.com/jsref/jsref-join.html) | 把数组的所有元素放入一个字符串。`[a,b,c].join(",");//a,b,c` | | [keys()](https://www.runoob.com/jsref/jsref-keys.html) | 返回数组的可迭代对象,包含原始数组的键(key)。~~【IE】~~ | | [**lastIndexOf()**](https://www.runoob.com/jsref/jsref-lastindexof-array.html) | 搜索数组中的元素,并返回它最后出现的位置。 | | [map()](https://www.runoob.com/jsref/jsref-map.html) | 通过指定函数处理数组的每个元素,并返回处理后的数组。【IE9】 | |of| ~~【IE】~~ | | [**pop()**](https://www.runoob.com/jsref/jsref-pop.html) | 删除数组的最后一个元素并返回删除的元素。 | | [**push()**](https://www.runoob.com/jsref/jsref-push.html) | 向数组的末尾添加一个或更多元素,并返回新的长度。 | | [reduce()](https://www.runoob.com/jsref/jsref-reduce.html) | 将数组元素计算为一个值(从左到右)。【IE9】 | | [reduceRight()](https://www.runoob.com/jsref/jsref-reduceright.html) | 将数组元素计算为一个值(从右到左)。【IE9】 | | [**reverse()**](https://www.runoob.com/jsref/jsref-reverse.html) | 反转数组的元素顺序。 | | [**shift()**](https://www.runoob.com/jsref/jsref-shift.html) | 删除并返回数组的第一个元素。 | | [**slice()**](https://www.runoob.com/jsref/jsref-slice-array.html) | 截取数组。选取数组的一部分,并返回一个新数组。 | | [some()](https://www.runoob.com/jsref/jsref-some.html) | 检测数组元素中是否有元素符合指定条件。【IE9】 | | [**sort()**](https://www.runoob.com/jsref/jsref-sort.html) | 对数组的元素进行排序。 | | [**splice()**](https://www.runoob.com/jsref/jsref-splice.html) | 从数组中添加或删除元素。 | |[`toLocaleString`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/toLocaleString)| 返回一个字符串表示数组中的元素。数组中的元素将使用各自的 `toLocaleString`方法转成字符串,这些字符串将使用一个特定语言环境的字符串(例如一个逗号 ",")隔开 | | [toString()](https://www.runoob.com/jsref/jsref-tostring-array.html) | 把数组转换为字符串,并返回结果。 | | [**unshift()**](https://www.runoob.com/jsref/jsref-unshift.html) | 向数组的开头添加一个或更多元素,并返回新的长度。 | | [valueOf()](https://www.runoob.com/jsref/jsref-valueof-array.html) | 返回数组对象的原始值。 | ``` //数组末尾添加一个元素 console.log(arr.push("b"));//2 console.log(arr);// ["a", "b"] //数组末尾删除一个元素 console.log(arr.pop());//b console.log(arr);// ["a"] //数组开头删除一个元素 console.log(arr.shift());//a console.log(arr);// [] //数组开头添加一个元素 console.log(arr.unshift("b"));//1 console.log(arr);// [ "b"] ``` **找出某个元素在数组中的索引** ~~~js var fruits=["Strawberry", "Banana", "Mango"] var pos = fruits.indexOf('Banana');// 1 ~~~ **通过索引新增、删除、替换元素** `splice(索引位置, 索引位置开始删除的个数,"从索引位置开始新增的元素1","...","从索引位置开始新增的元素n")` ``` var collection =["a", "b", "c","d","e","f","g"]; var pos = collection.indexOf('f');// 5 //删除指定索引之后的所有元素 var removedItem = collection.splice(pos); console.log(removedItem);// ["f", "g"] console.log(collection)//["a", "b", "c", "d", "e"] //删除指定索引的1个 var removedItem = collection.splice(2, 1); // console.log(removedItem);// ["c"] console.log(collection)//["a", "b", "d", "e"] //删除指定的多个元素 var removedItem = collection.splice(1, 2); console.log(removedItem);// ["b", "d"] console.log(collection)//["a", "e"] //从指定的索引位置插入元素 var addItem = collection.splice(1, 0,"b","c","d"); console.log(addItem);// [] console.log(collection)// ["a", "b", "c", "d", "e"] //从指定的索引位置替换元素 var addItem = collection.splice(1, 3,"1","2","3"); console.log(addItem);// ["b", "c", "d"] console.log(collection)//["a", "1", "2", "3", "e"] //替换的原理是先删除在插入 var addItem = collection.splice(1, 2,"b","c","d"); console.log(addItem);// ["1", "2"] console.log(collection)//["a", "b", "c", "d", "3", "e"] ``` **遍历数组** 方法1 ~~~js var fruits=["Apple ", "Banana "]; fruits.forEach(function (item, index, arr) { console.log(item, index); }); // Apple 0 // Banana 1 ~~~ 方法2 ``` var arr=["Apple ", "Banana "]; for (var i = 0; i < arr.length; i++) { console.log(arr[i],i); } ``` 方法3: for( var i in array ){}    原理:数组中有几个元素,for..in语句就循环执行多少次 **复制、截取数组** slice(start_index , end_index) 范围为左闭右开 ~~~js //不填写参数为复制 var arr=[1,2,3,4]; var newArr=arr.slice(); console.log(newArr);//[1,2,3,4]; //截取 var arr=[1,2,3,4]; //范围 start_index <= value < end_index var newArr=arr.slice(1); console.log(newArr);//[2,3,4]; var newArr=arr.slice(1,2); console.log(newArr);//[2]; //第二个参数为负数,则从后向前截取,-1代表倒数第一个,-2代表倒数第二个 var newArr=arr.slice(1,-1); console.log(newArr);//[2,3]; ~~~ **数组合并** arr.concat(arr1,...,arrN); ``` var arr=["a","b"]; var arr2=[1,2] var arr3=["A","B"]; var newArr=arr.concat(arr2,arr3,"dash","tom"); console.log(newArr);//["a", "b", 1, 2, "A", "B", "dash", "tom"] ``` **数组转字符串** 把数组的所有元素放入一个字符串。默认,链接 ``` [a,b,c].join();//a,b,c [a,b,c].join(",");//a,b,c [a,b,c].join("");//abc [a,b,c].join("_");//a_b_c ``` **反转数组** reverse()反转数组的元素顺序。 ``` var arr=[a,b,c]; arr.reverse(); console.log(arr);//["c","b","a"] ``` **数组排序** ``` var arr=[2,3,1]; arr.sort(); console.log(arr);//[1,2,3] ``` 我们可以在sort()添加一个回调函数,来指定排序规则,回调函数中需要定义两个形参,浏览器将会分别使用数组中的元素作为实参去调用回调函数 使用哪个元素调用不确定,但是肯定的是在数组中a一定在b前边" -浏览器会根据回调函数的返回值来决定元素的顺序 如果返回一个大于0的值,则元素会交换位置 如果返回一个小于0的值,则元素位置不变 如果返回一个0,则认为两个元素相等,也不交换位置