首页 > 其他分享 >数组

数组

时间:2023-06-13 18:55:43浏览次数:29  
标签:arr console log brr value 数组

<script>
const arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
//后面添加push 删pop 前面添加unshift 删shift


//slice 截取
console.log(arr.slice(1, 3)) //返回一个新数组,从1开始截取,到3结束,不包括3
console.log(arr) //原数组不变

//splice 功能非常强大,可以在任意位置增删改
//改
arr.splice(1, 4, 1, 2, 3) //从1开始,删除4个,用后面的内容去填充替换
console.log(arr)
//删
arr.splice(1, 4)
console.log(arr)
//增
arr.splice(1, 0, 'b', 'c', 'd', 'e', 'f')
console.log(arr)

//concat 将两个或多个数组合并成一个新数组
const brr = [1, 2, 3, 4, 5, 6, 7, 8]
console.log(arr.concat(brr))

//join 将数组转换为字符串
const joinStr = arr.join('-')//括号里为空,默认用逗号隔开
console.log(joinStr)

//indexOf 在数组里,查找某个元素是否存在,如果不存在,则返回-1,存在则返回第一个值的索引index
console.log(arr.indexOf('c'))
console.log(arr.indexOf('i'))
//lastIndexOf 某个元素在元素中最后一次出现的位置,用法同上

//forEach 对数组中每个元素执行操作
brr.forEach((value, index) => {
//console.log(value*2,index)
brr[index] = value * 2
})
console.log(brr)

//map() 创建一个新数组,其中包含原数组中的每个元素经过函数处理后的结果
console.log(arr.map((value, index) => {
return value * 2
}))
//简写
console.log(brr.map(value => value / 2)) //箭头函数的参数如果有且仅有一个,括号可省略,语句如果只要有一条,花括号也可以省略,且自动return
console.log(brr)

//filter 过滤
console.log(brr.map(value => value / 2).filter(value => value % 2 === 0)) //filter括号里的函数,必须return一个条件(条件就是返回一个布尔值的表达式)

//reduce 累加
console.log(brr.map(value => value / 2).filter(value => value % 2 === 0).reduce((value, preResult) => {
return preResult = preResult + value
}, 0))
//累乘
console.log(brr.map(value => value / 2).filter(value => value % 2 === 0).reduce((value, preResult) => {
return preResult = preResult * value
}, 1))
</script>    

这段代码演示了JavaScript中数组的常见操作,包括截取、增删改、合并、转换为字符串、查找、遍历、映射、过滤和累计等操作。以下是每个操作的具体解释:

1. `slice(start, end)`:截取数组中的一段元素,返回一个新的数组,不会改变原数组。`start`表示开始截取的位置,`end`表示结束截取的位置,但不包括该位置的元素。
2. `splice(start, deleteCount, item1, item2, ...)`:在数组中任意位置进行增删改,返回被删除的元素数组。`start`表示开始删除或插入的位置,`deleteCount`表示需要删除的元素个数,`item1, item2, ...`表示需要插入的元素。
3. `concat(array1, array2, ...)`:将两个或多个数组合并成一个新数组,不会改变原数组。
4. `join(separator)`:将数组中的元素转换为字符串,并使用`separator`作为分隔符连接它们。
5. `indexOf(searchElement, fromIndex)`:在数组中查找指定元素,并返回其第一次出现的位置。如果找不到,则返回-1。
6. `lastIndexOf(searchElement, fromIndex)`:在数组中查找指定元素,并返回其最后一次出现的位置。如果找不到,则返回-1。
7. `forEach(callbackFn)`:对数组中的每个元素执行指定的函数。
8. `map(callbackFn)`:创建一个新数组,其中包含原数组中的每个元素经过指定函数处理后的结果。
9. `filter(callbackFn)`:创建一个新数组,其中包含原数组中符合指定条件的元素。
10. `reduce(callbackFn, initialValue)`:对数组中的元素进行累计计算,返回一个结果。`callbackFn`表示累计计算的函数,`initialValue`表示初始值。

需要注意的是,上述数组操作都是非破坏性操作,即不会改变原数组,而是返回一个新的数组或其他结果。如果需要改变原数组,可以使用相应的破坏性操作,例如`push`、`pop`、`shift`和`unshift`等。

标签:arr,console,log,brr,value,数组
From: https://www.cnblogs.com/dadaya123/p/17478486.html

相关文章

  • JS-数组和函数
    1.数组数组Array:是一种可以按顺序保存数据的数据类型1.1声明数组let数组名=[数据1,数据2,数据3,...,数据n]或let数组名=newArray(数据1,数据2,数据3,...,数据n)<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahtt......
  • 2170.使数组变成交替数组的最少操作数
    问题描述2170.使数组变成交替数组的最少操作数(Medium)给你一个下标从0开始的数组nums,该数组由n个正整数组成。如果满足下述条件,则数组nums是一个交替数组:nums[i-2]==nums[i],其中2<=i<=n-1。nums[i-1]!=nums[i],其中1<=i<=n-1。在一......
  • 442.数组中重复的数据 (Medium)
    问题描述442.数组中重复的数据(Medium)给你一个长度为n的整数数组nums,其中nums的所有整数都在范围[1,n]内,且每个整数出现一次或两次。请你找出所有出现两次的整数,并以数组形式返回。你必须设计并实现一个时间复杂度为O(n)且仅使用常量额外空间的算法解决此......
  • 795.区间子数组个数 (Medium)
    问题描述795.区间子数组个数(Medium)给你一个整数数组nums和两个整数:left及right。找出nums中连续、非空且其中最大元素在范围[left,right]内的子数组,并返回满足条件的子数组的个数。生成的测试用例保证结果符合32-bit整数范围。示例1:输入:nums=[2,1,4,3],......
  • 2023.6.13 数组中不等三元组的数目
    直接的思路是三重循环\(O(n^3)\)解决,由于数据范围是\(n\leq100\),所以\(n^3\leq10^6\)可以过。如果想稍微优化一下的话,可以考虑下面两种思路,都是类似的:排序,排完序后相同的元素会聚集到一起,假设他们聚集在了区间\([i,j]\)内。那\([0,i-1]\)这一部分区间和\([j+1,n]\)......
  • C/C++学习(10)关于数组、内联函数、虚函数的错题集锦
    1、顺序存储方式不仅用于存储线性结构,还可以用于存放非线性结构,如完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式。 2、数组名有两重属性:1)数据结构的一个对象(数据结构为当前数组),在java中数组就是一个对象。2)某些情况下自动退化成指向第一个元素的常量指针。 3、有两......
  • 多维数组中指向的值
    #include<iostream>usingnamespacestd; intmain(){inta[2][2][3]={{{1,2,3},{4,5,6}},{{7,8,9},{10,11,12}}};int*ptr=(int*)(&a+1);printf("%d%d",*(int*)(a+1),*(ptr-1));return0;}输出结果为712*(int*)(a+1):指向数组a[......
  • 力扣---2475. 数组中不等三元组的数目
    给你一个下标从0开始的正整数数组nums。请你找出并统计满足下述条件的三元组(i,j,k)的数目:0<=i<j<k<nums.lengthnums[i]、nums[j]和nums[k]两两不同。换句话说:nums[i]!=nums[j]、nums[i]!=nums[k]且nums[j]!=nums[k]。返回满足上述条件三元组的数目......
  • 【易错点】数组名和数组取地址的区别
     inta[3]={1,2,3}; a: 数组名,数组中第一个元素的地址,相当于&a[0] &a:整个数组的地址,在数值上等于a a+1:数组中第二个元素的地址,相当于&a[1] &a+1:整个数组结束以后后面一个位置的地址 即:a=&a, 但 a+1≠&a+1 a[0]a[1]a[2]     ......
  • 代码随想录算法训练营第五天| 242.有效的字母异位词 , 349. 两个数组的交集 , 202. 快
    242.有效的字母异位词 繁冗版:1,思路:先建立两个map,对应两个字符串对应的字符,同时对他们进行计数,如果这两个数字相等,那么就是相等2,代码1boolisAnagram_complicate(strings,stringt)2{3unordered_map<char,int>existedCharBys;45for(autoch......