数组的常规操作2

常用属性

  • length属性:数组的长度;
  • prototype:原型

常用数组(Array)操作方法

  • form 在一个类数组中创建一个新的数组实列
  • isArry is就是判断是否为Array,isArray用于确认传递的值是否为数组(Array)
Array.isArray([1,2,3,]);//ture 括号里传递的值是否为数组。
//通常用于判断
  • concat:合并数组并且返回新数组,不改变原数组。
demo:
var a = ["n","s","s","b"];//声明一个数组
var a2 = ["l","z","s"."b"];//第二个数组
console.log(a.concat(a2));
//通过concat将两个数组相连

every:

翻译成中文就是每一个的意思。测试数组里的所有元素都通过了函数测试。

arr.every(callback[,thisArg]);
//测试数组里是否所有的元素都通过了,回调函数的测试。

demo:

function isBelowThreshold(currentValue) {
return currentValue < 40;
} var array1 = [1, 30, 39, 29, 10, 13]; console.log(array1.every(isBelowThreshold));
// expected output: true-预期输出是t

fill

用一个固定值填充一个数组内索引值从0到最后的全部元素,但不包括最后一个索引。

语法:

arr.fill(数值[,start[,end]]);

参数:

value

用来填充数组元素的值。

start 可选

起始索引,默认值为0。

end 可选

终止索引,默认值为 this.length。

返回的是修改以后的数组

felter

创建一个新的数组,包含所提供函数通过测试的所有函数。

var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])

参数

callback

回调函数,用来测试数组每个元素的函数,返回true表示通过filter测试,保留该元素

如果不通过返回false

可接收参数

element

数组中当前正在处理的元素。

index可选

正在处理的元素在数组中的索引。

array可选

调用了 filter 的数组本身。

thisArg可选

执行 callback 时,用于 this 的值。

demo:

var words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

const result = words.filter(word => word.length > 6);

console.log(result);
// expected output: Array ["exuberant", "destruction", "present"]

find

中文翻译寻找的意思,用来返回数组中满足回调函数条件的第一个元素的值,如果一个都没有返回undefined。

语法:

arr.find(callback[,thisArg]);

参数

  • callback

    在数组每一项上执行的函数,接收 3 个参数:
  • element

    当前遍历到的元素。
  • index可选

    当前遍历到的索引。
  • array可选

    数组本身。
  • thisArg可选

    执行回调时用作this 的对象。

    demo:
var a = [5,12,8,130,44];
var f = a.find(function(element){
return element>10;//变量a数组里面找到第一个比10大的数
})
console.log(f)

forEach

对数组的每一个元素执行一次所提供的函数。

语法:

arr.forEach(callback[, thisArg]);

参数:

callback

为数组中每个元素执行的函数,该函数接收三个参数:

currentValue

数组中正在处理的当前元素。

index可选

数组中正在处理的当前元素的索引。

array可选

forEach() 方法正在操作的数组。

thisArg可选

可选参数。当执行回调函数时用作 this 的值(参考对象)。

demo:

var array1 = ['a', 'b', 'c'];

array1.forEach(function(element) {
console.log(element);
}); // expected output: "a"
// expected output: "b"
// expected output: "c"

indexOf

返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。

语法

arr.indexOf(searchElement)
arr.indexOf(searchElement[, fromIndex = 0])

参数:

searchElement

要查找的元素

fromIndex

开始查找的位置。如果该索引值大于或等于数组长度,意味着不会在数组里查找,返回-1。如果参数中提供的索引值是一个负值,则将其作为数组末尾的一个抵消,即-1表示从最后一个元素开始查找,-2表示从倒数第二个元素开始查找 ,以此类推。 注意:如果参数中提供的索引值是一个负值,并不改变其查找顺序,查找顺序仍然是从前向后查询数组。如果抵消后的索引值仍小于0,则整个数组都将会被查询。其默认值为0.

返回值:第一个被找到的元素在索引中的位置,如果找不到该元素,返回-1

demo:

var beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];

console.log(beasts.indexOf('bison'));
// expected output: 1 // start from index 2
console.log(beasts.indexOf('bison', 2));
// expected output: 4 console.log(beasts.indexOf('giraffe'));
// expected output: -1

join

将一个数组的所有元素连接成一个祖父因此高压包并返回这个字符串。

如果数组只有一个项目,那么返回该项目而不是用分隔符。

语法:

arr.join([separator])

参数

separator

指定一个字符串来分隔数组的每个元素。如果需要,将分隔符转换为字符串。如果省略(),数组元素用逗号分隔。默认为 ","。如果separator是空字符串(""),则所有元素之间都没有任何字符。

demo:

var elements = ['Fire', 'Air', 'Water'];

console.log(elements.join());
// expected output: "Fire,Air,Water" console.log(elements.join(''));
// expected output: "FireAirWater" console.log(elements.join('-'));
// expected output: "Fire-Air-Water"

keys

返回一个包含数组中每个索隐建的Array Iterator

语法:

arr.keys()

返回值:

一个新的数组迭代器对象。

demo:

var array1 = ['a', 'b', 'c'];
var iterator = array1.keys(); for (let key of iterator) {
console.log(key); // expected output: 0 1 2
}

map

创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

语法:

var new_array = arr.map(function callback(currentValue[, index[, array]]) {
// Return element for new_array
}[, thisArg])

参数:

callback

生成新数组元素的函数,使用三个参数:

currentValue

callback 数组中正在处理的当前元素。

index可选

callback 数组中正在处理的当前元素的索引。

array可选

callback map 方法被调用的数组。

thisArg可选

执行 callback 函数时使用的this 值。

返回值:

一个新数组,每个元素都是回调函数的结果。

demo:

var array1 = [1, 4, 9, 16];

// pass a function to map
const map1 = array1.map(x => x * 2); console.log(map1);
// expected output: Array [2, 8, 18, 32]

pop

从数组中删除最后一个元素,并返回所删除元素的值,可以改变数组的长度

语法:

arr.pop()

返回值:

从数组中所删除的元素。

demo:

var plants = ['broccoli', 'cauliflower', 'cabbage', 'kale', 'tomato'];

console.log(plants.pop());
// expected output: "tomato" console.log(plants);
// expected output: Array ["broccoli", "cauliflower", "cabbage", "kale"] plants.pop(); console.log(plants);
// expected output: Array ["broccoli", "cauliflower", "cabbage"]

reduce

对数组中的每个元素只能给一个自定义的reducer函数,并将其结果汇总为单个返回值。

语法:

  arr.reduce(callback[,initialvalue])

参数:

callback

执行数组中每个值的函数,包含四个参数:

accumulator

累计器累计回调的返回值; 它是上一次调用回调时返回的累积值,或initialValue(见于下方)。

currentValue

数组中正在处理的元素。

currentIndex可选

数组中正在处理的当前元素的索引。 如果提供了initialValue,则起始索引号为0,否则为1。

array可选

调用reduce()的数组

initialValue可选

作为第一次调用 callback函数时的第一个参数的值。 如果没有提供初始值,则将使用数组中的第一个元素。 在没有初始值的空数组上调用 reduce 将报错。

返回值:

函数累计的处理结果

demo:

const array1 = [1, 2, 3, 4];
const reducer = (accumulator, currentValue) => accumulator + currentValue; // 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));
// expected output: 10 // 5 + 1 + 2 + 3 + 4
console.log(array1.reduce(reducer, 5));
// expected output: 15

reverse

将数组中的元素位置颠倒,并且返回该数组,此方法会对原数组内容进行修改。

语法:

arr. reverse()  

demo:

var array1 = ['one', 'two', 'three'];
console.log('array1: ', array1);
// expected output: Array ['one', 'two', 'three'] var reversed = array1.reverse();
console.log('reversed: ', reversed);
// expected output: Array ['three', 'two', 'one'] /* Careful: reverse is destructive. It also changes
the original array */
console.log('array1: ', array1);
// expected output: Array ['three', 'two', 'one']

slice

返回一个性的数组对象,这个对象是由begin和end(不包括end)决定的原数组浅拷贝,原数组内容不变

语法:

 arr.slice();
// [0, end] arr.slice(begin);
// [begin, end] arr.slice(begin, end);
// [begin, end)

参数:

begin 可选

从该索引处开始提取原数组中的元素(从0开始)。

如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,slice(-2)表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。

如果省略 begin,则 slice 从索引 0 开始。

end可选

在该索引处结束提取原数组元素(从0开始)。slice会提取原数组中索引从 begin 到 end 的所有元素(包含begin,但不包含end)。

slice(1,4) 提取原数组中的第二个元素开始直到第四个元素的所有元素 (索引为 1, 2, 3的元素)。

如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。 slice(-2,-1)表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。

如果 end 被省略,则slice 会一直提取到原数组末尾。

如果 end 大于数组长度,slice 也会一直提取到原数组末尾。

返回值:

一个含有提取元素的新数组

demo:

var animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];

console.log(animals.slice(2));
// expected output: Array ["camel", "duck", "elephant"] console.log(animals.slice(2, 4));
// expected output: Array ["camel", "duck"] console.log(animals.slice(1, 5));
// expected output: Array ["bison", "camel", "duck", "elephant"]

some

至少有一个元素通过了所提供的函数实现测试。

语法:

arr.some(callback(element[, index[, array]])[, thisArg])

参数

callback

用来测试每个元素的函数,接受三个参数:

element

数组中正在处理的元素。

index 可选

数组中正在处理的元素的索引值。

array可选

some()被调用的数组。

thisArg可选

执行 callback 时使用的 this 值。

返回值:

如果回调函数返回任何数组元素的truthy值,则返回true;否则为false。

demo:

var array = [1, 2, 3, 4, 5];

var even = function(element) {
// checks whether an element is even
return element % 2 === 0;
}; console.log(array.some(even));
// expected output: true

sort

永远地算法对数组的元素惊醒排序,并返回数组。排序算法现在是稳定的。默认排序是按照unicode的顺序

即所谓(1,2,3,4,5)(a,b,c,d,e)顺序

语法:

arr.sort([compareFunction])

参数:

compareFunction 可选

用来指定按某种顺序进行排列的函数。如果省略,元素按照转换为的字符串的各个字符的Unicode位点进行排序。

返回值:

排序后的数组。请注意,数组已原地排序,并且不进行复制。

demo:

var months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// expected output: Array ["Dec", "Feb", "Jan", "March"] var array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]

splice

通过删除或替换现有元素或者原地添加新的元素来修改数组,全能型的方法。并以数组的星师返回被修改的内容,此方法会修改元素组的值

语法:

array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

参数:

start​

指定修改的开始位置(从0计数)。如果超出了数组的长度,则从数组末尾开始添加内容;如果是负值,则表示从数组末位开始的第几位(从-1计数,这意味着-n是倒数第n个元素并且等价于array.length-n);如果负数的绝对值大于数组的长度,则表示开始位置为第0位。

deleteCount 可选

整数,表示要移除的数组元素的个数。

如果 deleteCount 大于 start 之后的元素的总数,则从 start 后面的元素都将被删除(含第 start 位)。

如果 deleteCount 被省略了,或者它的值大于等于array.length - start(也就是说,如果它大于或者等于start之后的所有元素的数量),那么start之后数组的所有元素都会被删除。

如果 deleteCount 是 0 或者负数,则不移除元素。这种情况下,至少应添加一个新元素。

item1, item2, ... 可选

要添加进数组的元素,从start 位置开始。如果不指定,则 splice() 将只删除数组元素。

返回值;

有被删除的元素组成的数组,如果只删除了一个元素。则返回只包含一个元素的数组,如果没有删除数组,则返回一个空的数组

demo:

var months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
// inserts at index 1
console.log(months);
// expected output: Array ['Jan', 'Feb', 'March', 'April', 'June'] months.splice(4, 1, 'May');
// replaces 1 element at index 4
console.log(months);
// expected output: Array ['Jan', 'Feb', 'March', 'April', 'May']

数组(Array)的常规操作2的更多相关文章

  1. python 数组array的一些操作

    对一些特定大小的元素进行操作 1.将数组Arr中大于100的值都设定为100 Arr[Arr >100] = 100    利用array索引的内置 numpy.minimum(Arr, 100 ...

  2. scala的多种集合的使用(5)之数组Array(ArrayBuffer)的操作

    1.创建和更新数组的不同方式 1)定义一个数组的初始大小和类型,随后填充值. scala> val array = new Array[String](3) array: Array[Strin ...

  3. 数组Array的相关操作。

    一 数组的对象(元素): 1. 数字, 2 .字符串 3 变量 4. 函数 .... 二 数组的创建 1 var arrayObj = new Array(); var a =new Array(si ...

  4. js对数组array的常见操作小结

    1.创建数组?两种方式 var arr = new Array("1","2","4"); var arr1 = ["1" ...

  5. PHP学习之数组Array操作和键值对操作函数(一)

    PHP 中的数组实际上是一个有序映射.映射是一种把 values关联到 keys 的类型.此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合, ...

  6. R: matrix & array 生成、操作矩阵、数组:

    ################################################### 问题:生成.操作矩阵   18.4.27 怎么生成矩阵 matrix.,,及其相关操作 ??? ...

  7. Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别

    ArrayList和Vector的区别ArrayList与Vector主要从二方面来说.  一.同步性:   Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步 ...

  8. javascript类型系统——数组array

    × 目录 [1]创建 [2]本质 [3]稀疏[4]长度[5]遍历[6]类数组 前面的话 除了对象之外,数组Array类型可能是javascript中最常用的类型了.而且,javascript中的数组与 ...

  9. swift基本用法-数组array

    数组简单用法 //------------------------------------------------------------------------------ // 1. 数组定义 / ...

随机推荐

  1. 【实战经验】--Xilinx--Chipscope使用

    1)在工程右键点击New Source 新建Chioscope,在File name 填写名称: 2)新建完成后,工程里会出现你建立的chipscope文件(如下图chip_ddr3.cdc)双击打开 ...

  2. Shell编程学习(七)

    if 条件语句的知识与实践 if 条件语句 if条件语句的语法 单分支结构 第一种 if <条件测试表达式> then 指令 fi 第二种 if <条件测试表达式>; then ...

  3. 牛客CSP-S提高组赛前集训营2 T2沙漠点列

    原题链接 算法不难,比赛的时候就和cyc大佬一起yy了正解,不过因为交的时候比较急(要回寝室惹),我有两数组开错大小直接爆到50,cyc大佬则只把文件输入关了一半,直接爆零(╯ ̄Д ̄)╯┻━┻ 要尽量 ...

  4. netcore访问本地磁盘

    public void ConfigureServices(IServiceCollection services) { services.AddDirectoryBrowser(); }public ...

  5. JS中的if语句内如何加or使多个条件通过

    if(a==1&&b==2){ //do something }//条件是a等于1  并且  b等于2时才能成立,两个条件必须同时满足 if(a==1||b==2){ //do som ...

  6. 【WEB基础】HTML & CSS 基础入门(1)初识

    前面 我们每天都在浏览着网络上丰富多彩的页面,那么在网页中所呈现出的绚丽多彩的内容是怎么设计出来的呢?我们想要自己设计一个页面又该如何来做呢?对于刚刚接触网页设计的小伙伴来说,看到网页背后的一堆符号和 ...

  7. 你需要知道的 5 个 Linux 新手会犯的失误

    Linux 爱好者们分享了他们犯下的一些最大错误. 终身学习是明智的 —— 它可以让你的思维敏捷,让你在就业市场上更具竞争力.但是有些技能比其他技能更难学,尤其是那些小菜鸟错误,当你尝试修复它们时可能 ...

  8. HttpClient实战三:Spring整合HttpClient连接池

    简介 在微服务架构或者REST API项目中,使用Spring管理Bean是很常见的,在项目中HttpClient使用的一种最常见方式就是:使用Spring容器XML配置方式代替Java编码方式进行H ...

  9. 第一个 macOS 64位 kbmmw 服务器

    前几天,Delphi 10.3.2 正式发布,这个小版本升级却增加了一个非常大的平台支持,增加了 macos 64位的支持,今天做一个macOS 64位的kbmmw应用,让kbmmw 服务器的应用更广 ...

  10. json模块中dumps()与dump()区别

    dumps是将dict转化成json字符串格式,loads是将json字符串转化成dict格式. dump和load也是类似的功能,只是与文件操作结合起来了. dump(写入内容,文件对象) 和loa ...