资讯专栏INFORMATION COLUMN

javascript 数组的常用方法

denson / 2106人阅读

摘要:实际使用的是这个注意,是,比数组的长度大每次迭代时更新这里可以看到更新后的都是遍历迭代器结束才是遍历完毕,输出的数组方法返回一个新的迭代器,它包含数组中每个索引的键。方法对累加器和数组中的每个元素从左到右应用一个函数,将其减少为单个值。

学习javascript的过程中,总是容易array忘记方法,把数组的一些方法全部汇总在一起,方便查看和增加记忆.

创建数组
let arr = ["apple", "banana"];
console.log(arr, "---------访问数组"); //[ "apple","banana" ]
通过索引访问元素
let arr = ["apple", "banana"];
let first = arr[0];
console.log(first, "----通过索引访问数组"); //"apple"
console.log(arr[arr.length - 1], "-------访问数组中最后一位元素") //"banana"
遍历数组
let arr = ["apple", "banana"];
arr.forEach((item, index, array) => {
    console.log(item, "------item")  //"apple" "banana"
    console.log(index, "------index") // 0,1
    console.log(array, "-----array") //["apple","banana"]
})
push() 添加元素到数组末尾
let arr = ["apple", "banana"];
arr.push("orange");
console.log(arr, "----添加元素到数组末尾"); // ["apple", "banana", "orange" ]
pop() 删除数组末尾元素
let arr = ["apple", "banana","orange"];
arr.pop();
console.log(arr, "----删除数组末尾元素"); //["apple", "banana"]
shift() 删除数组最前面的元素
let arr = ["apple", "banana"];
arr.shift();
console.log(arr, "----删除数组最前面的元素") //[ "banana" ]
unshift() 添加元素到数组的头部
let arr = ["banana"];
arr.unshift("eggs");
console.log(arr, "----添加元素到数组的头部")  //[ "eggs", "banana" ]
indexOf() 查看某个某个元素在数组中的位置,存在就是当前下标,如果不存在就为-1;
let arr = [ "eggs","banana"];
let index = arr.indexOf("banana");
console.log(index, "------查看某个某个元素在数组中的位置;") //1
//--------------------
let index1 = arr.indexOf("watermelon");
console.log(index1, "------查看某个某个元素在数组中的位置;") //-1
splice是数组中最强大的功能之一,增,删,改
let arr = [ "eggs","banana"];
splice(start,end,string) start是开始下标的位置  end是删除几个元素 string是插入或替换的元素
arr.splice(0, 1, "grapes"); //在0的位置删除一个元素,并且加入一个元素 ,删除插入
console.log(arr,"------") //[ "grapes", "banana" ] "------"
arr.splice(1, 2, "fruits"); //在下标为1的位置插入2个元素,如果后面只传了一个就插入一个
console.log(arr,"------") //[ "grapes", "fruits" ] "------"
arr.splice(2, 2, "fruits", "fruits"); //在下标为2的位置插入2个元素
console.log(arr,"------") //[ "grapes", "fruits" ] "------"
arr.splice(0, 1);  //删除元素
console.log(arr, "---通过索引删除某个元素")
slice 不会改变原数组
let arr=[ "fruits", "fruits", "fruits" ];
let copyArr = arr.slice();  //拷贝数组
console.log(copyArr) //[ "fruits", "fruits", "fruits" ]
let sliceArr = arr.slice(0, 1);  //获取元素 
console.log(sliceArr)  //[ "fruits" ]
Array.from() 方法从一个类似数组或可迭代对象中创建一个新的数组实例。
const bar = ["a", "b", "c"];
Array.from(bar);
const foo = Array.from("foo");
console.log(foo); //[ "f", "o", "o" ] 
Array.isArray() 用于确定传递的值是否是一个 Array。
console.log(Array.isArray([1, 2, 3])) //true
console.log(Array.isArray("str")) //false
console.log(Array.isArray({ "foo": "1" })) //false
console.log(Array.isArray(null)) //false
console.log(Array.isArray(undefined)) //false
Array.of() 方法创建一个具有可变数量参数的新数组实例
console.log(Array.of(5)) //[5] 创建一个数组为[5]
console.log(Array.of(1, 2, 3)) //[1,2,3]
console.log(Array.of(1, [1, 23], 3)) //[ 1, [ 1, 23 ], 3 ]
concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
let array1 = ["a", "b"];
let array2 = ["1", "2"];
let array3 = [].concat(array1, array2);
console.log(array3) //[ "a", "b", "1", "2" ]
array.copyWithin(target, start, end)

方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,而不修改其大小。

target    必需。复制到指定目标索引位置。
start    必需。元素复制的起始位置。
end    可选。停止复制的索引位置 (默认为 array.length)
let copyWithinArr = ["alpha", "beta", "copy", "delta"].copyWithin(1, 2, 3);
1=="beta"
2=="copy"
3=="delta"
console.log(copyWithinArr) // [ "alpha", "copy", "copy", "delta" ]
let copyWithinArr1 = ["alpha", "beta", "copy", "delta"].copyWithin(2, 0);
console.log(copyWithinArr1) //[ "alpha", "beta", "alpha", "beta" ]
entries() 方法返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对。
var entries = ["a", "b", "c"];
var iterator = entries.entries();
console.log(iterator, "---")
console.log(iterator.next().value, "---")
console.log(iterator.next())
var iter = entries.entries();
var a = [];
// for(var i=0; i< arr.length; i++){   // 实际使用的是这个 
for (var i = 0; i < arr.length + 1; i++) {    // 注意,是length+1,比数组的长度大
    var tem = iter.next();             // 每次迭代时更新next
    console.log(tem.done);             // 这里可以看到更新后的done都是false
    if (tem.done !== true) {             // 遍历迭代器结束done才是true
        console.log(tem.value);
        a[i] = tem.value;
    }
}
console.log(a);  // [ [ 0, "a" ], [ 1, "b" ], [ 2, "c" ] ] 遍历完毕,输出next.value的数组
keys()方法返回一个新的Array迭代器,它包含数组中每个索引的键。 返回的是下标
values() 方法返回一个新的 Array Iterator 对象,该对象包含数组每个索引的值。
for (let index of ["a", "b"].keys()) {
    console.log(index);
}
// 0  
// 1  
every() 方法测试数组的所有元素是否都通过了指定函数的测试。
function isBigEnough(element, index, array) {
    return (element >= 10);
}
var passed = [12, 5, 8, 130, 44].every(isBigEnough);
// passed is false
passed = [12, 54, 18, 130, 44].every(isBigEnough);
// passed is true
some() 方法测试数组中的某些元素是否通过由提供的函数实现的测试。
console.log([1,2,3,4,5].some(isBigEnough),"----some"); //一个都没有通过false 
// passed is false
console.log([12, 54, 18, 1,2].some(isBigEnough),"--------some"); //只要有一个通过即为true
// passed is true
fill() 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。
arr.fill(value,start,end)
let fillArr = [1, 2, 3, 4, 5];
console.log(fillArr.fill(3)) //[ 3, 3, 3, 3, 3 ]
console.log(fillArr.fill(2, 0, 2)) //[ 2, 2, 3, 3, 3 ]
console.log(fillArr.fill(5, 1)) // 2, 5, 5, 5, 5 ]
filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
let filter = (value) => {
    return value > 10
}
console.log([15, 13, 2, 16, 3].filter(filter))  // 15, 13, 16 ]
find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。
console.log([15, 13, 2, 16, 3].find(filter))  // 15 返回第一个满足条件的值  否则undefined
findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。
console.log([15, 13, 2, 16, 3].findIndex(filter))  // 0 返回第一个满足条件的下表  否则-1
forEach() 方法对数组的每个元素执行一次提供的函数。 //item是值,index下标,array是原数组
fillArr.forEach((item, index, array) => console.log(item))
includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回
console.log(fillArr.includes(2)) //true 检查数组中是否有该值有为true,否则false
console.log(fillArr.includes(4)) //false  
indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
console.log(fillArr.indexOf(2))  //0
console.log(fillArr.indexOf(4))  //-1 
join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。
let joinArr = ["Wind", "Rain", "Fire"];
console.log(joinArr.join());  //Wind,Rain,Fire
lastIndexOf() 方法返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从 fromIndex 处开始。
console.log(["a","b"].lastIndexOf("a"));   //0  从后面往前面找
map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
let numbers=[1,2,3,45,7,8,9];
let doubles=numbers.map(x=>x+1);
console.log(doubles,"------map") //[ 2, 3, 4, 46, 8, 9, 10 ] "------map"
reduce() 方法对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值。
const reduceArr=[1,2,3,4,5,6];
const reduce=(accumulator,currentValue)=>{
    console.log(accumulator,"-------accumulator"); //累加的值
    console.log(currentValue,"-------currentValue"); //当前元素
    return accumulator+currentValue
};
console.log(reduceArr.reduce(reduce))  //21 从左往右
reduceRight() 方法接受一个函数作为累加器(accumulator)和数组的每个值(从右到左)将其减少为单个值。
console.log(reduceArr.reduceRight(reduce))  //21 从右往左
reverse() 方法将数组中元素的位置颠倒。
console.log(reduceArr.reverse()) //[ 6, 5, 4, 3, 2, 1 ] 数组顺序颠倒
sort() 数组的元素进行排序,并返回数组
let items = [
    { name: "Edward", value: 21 },
    { name: "Sharpe", value: 37 },
    { name: "And", value: 45 },
    { name: "The", value: -12 },
    { name: "Magnetic" ,value :0},
    { name: "Zeros", value: 37 }
  ];
  items.sort((a,b)=>{
      return a.value-b.value
  })

  console.log(items)

  items.sort((a,b)=>{
    var nameA = a.name.toUpperCase(); // ignore upper and lowercase
    var nameB = b.name.toUpperCase(); // ignore upper and lowercase
    if (nameA < nameB) {
        return -1;
      }
      if (nameA > nameB) {
        return 1;
      }
    // names must be equal
    
      return 0;
    // return   nameA-nameB  转成NAN
  })
  console.log(items)
toLocaleString()返回一个字符串表示数组中的元素。数组中的元素将使用各自的 toLocaleString 方法转成字符串,
  let str=[1,2,3,4,5];
  console.log(str.toLocaleString())  //1,2,3,4,5 

希望大家喜欢,也希望大家指点错误,也可以加入qq群439667347,大家一起讨论,一起进步,后续更新中...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107624.html

相关文章

  • JavaScript 常用方法

    摘要:常用方法作用向从数组中添加删除项目,然后返回被删除的项目。注释该方法并不会修改数组,而是返回一个子数组。语法表示数组开始选定的位置表示数组结束选定的位置作用从已有的数组末尾增加一个元素。 JavaScript 常用方法 1. splice() 作用:向/从数组中添加/删除项目,然后返回被删除的项目。 注释:该方法会改变原始数组。 语法:arrayObject.splice(...

    ranwu 评论0 收藏0
  • Javascript数组常用方法

    摘要:数组常用方法介绍删除数组最后一位元素。开始下标删除个数,插入元素可以多个注意当数组执行上面的这些方法时,都会修改原数组。输出从数组中找出所有符合指定条件的元素。内容返回将数组合成一个值。合并数组或合并数组的值。 JavaScript 数组常用方法介绍 array.pop – 删除数组最后一位元素。 var arr = [1, 2, 3]; arr.pop();// 返回 3 arr;/...

    verano 评论0 收藏0
  • JavaScript Array对象常用方法

    摘要:省略则对数组元素进行排序返回该数组从数组中添加删除项目返回被删除的元素插入替换删除 Array对象常用方法 不改变原数组 concat() join() slice() toString() 改变原数组 pop() push() reverse() shift() unshift() sort() splice() 不改变原数组 array.concat(array) 连接两个...

    wangdai 评论0 收藏0
  • javascript数组常用方法

    摘要:数组常用方法数组作为中常用的数据类型使我们用的最多的在其他地方可以搜索出很多对其方法的总结本文列举了笔者认为的个人认为最为重要的一系列方法字符串数组转换数组字符串转换转换时可以添加符号还有一个是查找元素返回第一个与参数相同的元素的索引。 js数组常用方法 数组作为js中常用的数据类型使我们用的最多的, 在其他地方可以搜索出很多对其方法的总结, 本文列举了笔者认为的(个人认为^_^)最为...

    GraphQuery 评论0 收藏0
  • JavaScript数组——常用数组方法汇总

    摘要:本文记录关于数组的一些常用方法,搜集总结。对于数组中的每个元素,都会调用函数一次。返回值是一个新数组,其中的每个元素均为关联的原始数组元素的回调函数返回值。 本文记录关于js数组的一些常用方法,搜集总结。 主要思路: 1. 方法功能是什么 2. 传递的参数是什么 3. 返回值是什么 4. 原来的数组是否改变 第一组:关于数组的增加、删除和修改 1.push 向数组末尾增加新的...

    HollisChuang 评论0 收藏0
  • [ ES6 ] 快速掌握常用 ES6 (二)

    摘要:本系列文章适合快速掌握入门语法,想深入学习的小伙伴可以看看阮一峰老师的入门本篇文章是对之前文章的一个补充,可以使代码更简洁函数参数默认值在传统语法中如果想设置函数默认值一般我们采用判断的形式在新的语法中我们可以在参数声明的同时赋予默认值参数 本系列文章适合快速掌握 ES6 入门语法,想深入学习 ES6 的小伙伴可以看看阮一峰老师的《ECMAScript 6 入门》 本篇文章是对之前文章...

    hidogs 评论0 收藏0

发表评论

0条评论

denson

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<