首页 > 其他分享 >Array方法总结(一)

Array方法总结(一)

时间:2024-03-30 15:02:22浏览次数:22  
标签:总结 console log 数组 const Array 方法 array

Array.prototype.at()

at(index)  传入一个整数值参数,返回该索引对应的元素。传入负整数从数组最后一个元素开始倒数。

const array = [10, 8, 2];
console.log(array.at(-2)); // 8

Array.prototype.concat()

合并两个或多个数组。返回一个新数组。

const array1 = [7, [1, 3]];
const array2 = ['d', 'a', 'n'];
const array3 = array1.concat(array2);
console.log(array3); // [7, [1, 3], 'd', 'a', 'n'];

array1[1].push(2001);
console.log(array3); // [7, [1, 3, 2001], 'd', 'a', 'n'];

Array.prototype.copyWithin()

复制数组的一部分到同一数组中的另一位置,并返回自身。改变原数组。

copyWithin(target, start, end) 从start开始到end(不包括end)的元素复制到target开始的位置,不改变原数组长度。

copyWithin(target, start, end)
const array1 = ['l', 'i' ,'c', 'i', 'a'];
console.log(array1.copyWithin(0, 3, 4)); // ['i', 'i' ,'c', 'i', 'a']

console.log([1, 2, 3, 4, 5].copyWithin(-2)); // [1, 2, 3, 1, 2];
console.log([1, 2, 3, 4, 5].copyWithin(0, 3)); // [4, 5, 3, 4, 5];
console.log([1, 2, 3, 4, 5].copyWithin(0, 3, 4)); // [4, 2, 3, 4, 5];
console.log([1, 2, 3, 4, 5].copyWithin(-2, -3, -1)); // [1, 2, 3, 3, 4];

Array.prototype.entries()

返回一个新的数组迭代器对象,该对象包含数组中每个索引的键/值对。

const array = ['d', 'a', 'n'];
const iterator1 = array.entries();
console.log(iterator1.next().value); // [0, 'd']

for(const [index, element] of array.entries()) {
    console.log(index, element);
}
// 0 'd'
// 1 'a'
// 2 'n'

Array.prototype.every()

一个数组内的所有元素是否都通过指定函数的测试。返回一个布尔值。

const isBelowThreshold = (currentValue) = > currentValue < 40;
const array = [1, 30, 39, 29, 10, 13];
console.log(array.every(isBelowThreshold)); // true

检查一个数组是否是另一个数组的子集

const isSubset = (array1, array2) = >
    array2.every((element) => array1.includes(element));
console.log(isSubset([1, 2, 3, 4, 5, 6, 7], [5, 6, 7])); // true
console.log(isSubset([1, 2, 3, 4, 5, 6, 7], [5, 8, 7])); // false

Array.prototype.fill()

用一个固定值填充一个数组从起始索引(默认为0)到终止索引(不包含end)的全部元素。返回修改后的数组。

fill(value, start, end)

const array = [1, 2, 3, 4];
console.log(array.fill(0, 2, 4)); // [1, 2, 0, 0]
console.log(array.fill(0, 1, 3)); // [1, 0, 0, 4]
console.log(array.fill(5, 1)); // [1, 5, 5, 5]
console.log(array.fill(6)); // [6, 6, 6, 6]

Array.prototype.filter()

返回一个新数组,包含所有通过所提供函数实现的测试的所有元素。

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

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

console.log(result); // ['exuberant', 'destruction', 'present']

Array.prototype.find()

返回数组中满足条件的第一个元素的值。否则返回undefined。

const array = [5, 12, 8, 130, 44];
const found = array.find((element) => element > 10);
console.log(found); // 12

const inventory = [
    { name: "apples", quantity: 2 },
    { name: "bananas", quantity: 0 },
    { name: "cherries", quantity: 5 },
];
const result = inventory.find(({ name }) => name === "cherries");
console.log(result); // { name: 'cherries', quantity: 5 }

Array.prototype.findIndex()

返回满足条件的第一个元素的索引。没有找到对应元素返回-1。

const array = [5, 12, 8, 130, 44];
const isLargeNumber = (element) => element > 13;
console.log(array.findIndex(isLargeNumber)); // 3

Array.prototype.flat()

创建一个新的数组,将所有子数组元素拼接到新的数组中。

flat(depth)  指定要提取嵌套数组的结构深度,默认值为 1

const arr1 = [0, 1, 2, [3, 4]];
console.log(arr1.flat()); // [0, 1, 2, 3, 4]

const arr2 = [0, 1, [2, [3, [4, 5]]]];

console.log(arr2.flat()); // [0, 1, 2, [3, [4, 5]]]

console.log(arr2.flat(2)); // [0, 1, 2, 3, [4, 5]]

console.log(arr2.flat(Infinity)); // [0, 1, 2, 3, 4, 5]

从一组句子中生成单词列表。

const arr1 = ["it's Sunny in", "", "California"];

arr1.map((x) => x.split(" "));
// [["it's","Sunny","in"],[""],["California"]]

arr1.flatMap((x) => x.split(" "));
// ["it's","Sunny","in", "", "California"]

Array.prototype.forEach()

对数组的每个元素执行一次给定的函数。无返回值。

const array = ['a', 'b', 'c'];
array.forEach((element) => console.log(element));
// a
// b
// c

Array.from()

字符串转数组
console.log(Array.from('foo')); // ["f", "o", "o"]

用Set 或 Map创建数组
const set = new Set([1, 2, 3]);
const newArray = Array.from(set);
console.log(newArray); // [1, 2, 3]

对元素进行迭代处理
console.log(Array.from([1, 2, 3], (x) => x + x)); // [2, 4, 6]

const str = 'hello'
const strArr = Array.from(str,(s) =>s+'_')
console.log(strArr); // ["h_", "e_", "l_", "l_", "o_"]
console.log(strArr.join('')); // "h_e_l_l_o_"

数组、字符串的去重
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = Array.from(new Set(arr));
const uniqueArray2 =[...new Set(arr)]
const uniqueArray3 = _.uniq(arr) // 使用lodash中的方法    
console.log(uniqueArray); // [1, 2, 3, 4, 5]
console.log(uniqueArray2); // [1, 2, 3, 4, 5]
console.log(uniqueArray3); // [1, 2, 3, 4, 5]

标签:总结,console,log,数组,const,Array,方法,array
From: https://blog.csdn.net/larea/article/details/137144274

相关文章

  • 新手小白如何学习Python 选对方法很重要(附教程)
    近年来,Python应用领域增多、就业薪资上涨,这吸引了很多人关注学习。更重要的是Python语法简洁、功能强大,即使是0基础也能学会,这让很多想要从事IT开发的人看到了希望。不过新手小白如何学习Python呢?Python是一门语法简洁、功能强大、上手简单的计算机编程语言,根据TIOBE最新排......
  • 代码随想录算法训练营总结
    刷题收获:    通过算法训练营一刷,熟悉并上手实现了一些算法,代码能力得到了很大的提升,也对提高了Java的熟练度,为研究生阶段参加算法竞赛打下了不错的基础。    并且这种每日打卡的形式,能够强制性让自己每天看算法题,收获自然颇丰,也会有助手大佬帮我解决盯了四个......
  • day01-字符串方法-逻辑运算符规律
    字符串方法 查询类方法 字符串.index(字符):查询指定字符在整个字符串中第一次出现的位置下标;如果下表不存在则报错字符串.find(字符):查询指定字符在整个字符串中第一次出现的位置下标;如果下表不存在则返回-1字符串.rindex(字符):查询指定字符在整个字符串中最后一次出现的......
  • 一文搞懂!super(子类, self).父类方法(参数)的作用及使用方法
    文章目录一、作用详解二、使用方法三、注意事项一、作用详解super(子类,self).父类方法(参数)的作用是:在子类中调用父类方法。下面我们来拆解一下这句代码:super():输入一个对象,它会将方法调用委托给该对象的父类。super(子类,self):输入的对象是子类,self指子类实......
  • 2024.3.29 模拟赛总结
    贤者之石T435273思路:一维线性DP,dp[i]表示以i结尾的最大值,dp[i]=max(1,dp[sqrt(i)]+1);琪露诺的位运算教室T435274思路:数论题,尝试打表,a[i][j]为i&j是否大于等于i^j。1000000000001100000000011000000000001111000000......
  • 程序员在平台兼职接单,月入30K,方法我全写出来了!(附接单渠道和注意事项)
    本月兼职的收入又到账了,程序员副业实在是太香了!虽然这点小钱还远远达不到财富自由,也比不上那些真正的大佬,但在这个行业寒冬里,能有一笔相对稳定的收入,作为全职之外的补充,还是让人倍感踏实的!今天我就掏心掏肺地跟大家讲一讲,平台接单的二三事,知无不言言无不尽!什么是程序员......
  • 5.Android(RecyclerView控件总结)
    先说很重要很重要的问题就是在使用RecyclerView控件的时候根据课本我们需要导入recyclerview-v7库但是会出现一堆问题因为使用的是androidstudio是最新版需要手动更改很多东西而最新整合的Androidx解决了这个问题参考https://blog.csdn.net/weixin_43977534/article/de......
  • lodash已死?radash最全使用介绍(附源码详细说明)—— Array方法篇(1)
    相信很多前端同学甚至非前端都或多或少使用过lodash库,我们都知道lodash是一个非常丰富的前端工具库,比如最常用的防抖和节流,使用lodash都能很快实现,在github上更是有着58.7k的star数。但最近出现的Radash库,号称lodashplus版本,比之更新、更小、更全面、源码更易于理解。阅读本文......
  • Linux(4)常见操作整理-静态路由-双网卡-文件上传下载-运维思路-性能监测方法-jar包查找
    五、常见操作1、静态路由配置【描述】:当前ifconfigeno16777728对应ip:172.41.0.120【解决】:(1)[root@localhost~]#cd/etc/sysconfig/network-scripts/(2)添加文件:route-eno16777728​172.41.200.0/24via172.41.0.253deveno16777728​172.41.202.0/24via172......
  • Python环境下一种改进小波分解方法-用于多分量信号的分解
    小波通俗的讲就是一种振幅表现为在正负之间震荡的波形。小波变换在基于短时傅立叶变换的前提下,又加入了其所没有的可随频率变化的“时间-频率”窗口,其能对时间、频率进行局部化分析,并且对待处理信号通过多尺度处理使其表现为时-频细分的特点,是一种能突出信号时频特点以及细节的......