JavaScript数组方法

JavaScript数据类型
基本类型:number,string,boolean,null,undefined,symbol
引用类型:也称复杂数据类型 Object,function
检测基本数据类型:typeof 变量名
特殊:
typeof null 返回 Object
typeof 函数名 返回function
var a=1
console.log(anull) //返回0
console.log(a
NaN) //返回NaN===not a number
console.log(typeof NaN)
数组常用方法
创建数组
var fruits = [‘Apple’, ‘Banana’];
console.log(fruits.length); // 2

  1. 数组遍历,是for循环的升级版本,返回值:undefined
    forEach((item,index,arr)=>{})

    参数说明:
    item:数组当前项的值
    index:数组当前项的索引
    arr:数组对象本身

  2. 添加元素到数组的末尾
    var newLength = fruits.push(‘Orange’);
    // newLength:3; fruits: [“Apple”, “Banana”, “Orange”]

  3. 删除数组末尾的元素
    var last = fruits.pop(); // remove Orange (from the end)
    // last: “Orange”; fruits: [“Apple”, “Banana”];

  4. shift() //首部删除

  5. unshift() //首部添加

  6. splice() //插入,删除,替换
    三个参数
    start
    启动

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

array.length-n);如果负数的绝对值大于数组的长度,则表示开始位置为第0位。
如果负数的绝对值大于数组的长度,则表示开始位置为第0位.
deleteCount
可选
整数,表示要移除的数组元素的个数。
item1, item2, …可选
要添加进数组的元素,从start位置开始。如果不指定,则splice()将只删除数组元素。
7. indexOf() //检测是否存在某个子字符串,存在返回对应下标,不存在返回-1
8. sort(function(v1,v2) {}) //排序
9. reverse() //反序
字符串反序 回文问题

     function isHuiWen(target) {

         var tempStr=target.split('').reverse().join('')

         return (tempStr===target? true:false)

      }
  1. join(‘分隔符’)

  2. filter((item,index,arr)=>{}) 查找数组中满足条件的所有元素组成的新数组 返回值:返回新数组

    /**

    • 需求:把数组中带有’疫情‘那些元素搜索出来组成新数组
    • 思路:通过要搜索的目标值结合filter来实现
      */
 let arr2 = [
    {id:1001,title:'没看大V玫琳凯 汲取奋进力量'},
    {id:1002,title:'疫后重振 在武汉过完美一天'},
    {id:1003,title:'这么长偶尔哦'},
    {id:1004,title:'吃辣可参考请问您机器'},
    {id:1005,title:'"海外疫情'},
    {id:1006,title:'今年是否已走出疫情阴影'},

]

let searchReault=arr2.filter((item, index) => {
    return item.title.includes('疫情')
})
  1. map((item,index,arr)=>{}) //返回新数组
    /**
    • 需求:把数组中title添加li标签返回新数组
    • 思路:通过用map遍历arr2数组,再通过模板字符串拼接返回实现
      */
let arr2 = [
    {id:1001,title:'没看大V玫琳凯 汲取奋进力量'},
    {id:1002,title:'疫后重振 在武汉过完美一天'},
    {id:1003,title:'这么长偶尔哦'},
    {id:1004,title:'吃辣可参考请问您机器'},
    {id:1005,title:'海外疫情'},
    {id:1006,title:'今年是否已走出疫情阴影'},
 ]

let resultLiTag = arr2.map((item,index) => {
    return {msg:'ok',title:`<li>${item.title}</li>`}
})

console.log('resultLiTag:',resultLiTag);
  1. find() // 查找数组中满足条件的第一个元素,没有满足的返回undefined
  2. some() //遍历数组中,查找至少有一个满足条件的元素,如果有返回true,否则false
  3. every() //遍历数组中,只有所有元素都满足条件才返回true,否则false
let arr = [
    {id:1001,title:'没看大V玫琳凯 汲取奋进力量',checed:true,num:11},
    { id: 1002, title: '疫后重振 在武汉过完美一天' ,checed:true,num:12},
    {id:1005,title:'"海外疫情',checed:true,num:20},
    {id:1003,title:'这么长偶尔哦',checed:true,num:30},
    {id:1004,title:'吃辣可参考请问您机器',checed:true,num:12},
    {id:1006,title:'今年是否已走出疫情阴影',checed:true,num:20},
    
]
 
//查找全部选中状态才返回true
// let result=arr.every((item,index) => {
//     return item.checed
// })

//查找全部购物车商品数量大于5
let result=arr.every((item,index) => {
     return item.num>5
 })
  1. reduce((值1,值2,值3,值4)=>{},初始值) 数组归并,即将数组的多个值合并成一个值

回调函数中4个参数说明:
值1:累计器
值2:当前值
值3:当前索引
值4:要遍历的数组

//需求:统计数组中元素出现的次数

//结果:{'Alice':2,'Tiff':1,...}
var names = ['Alice', 'Alice', 'Bob', 'Tiff', 'Bruce', 'Alice', 'Tiff'];

var info=names.reduce((obj,curValue) => {
    if (!obj[curValue]) {
        obj[curValue]=1
    } else {
        obj[curValue]++
    }

    return obj

},{})
  1. findIndex() //查找数组中满足条件的第一个元素的索引。若没有找到对应元素则返回-1。
let arr = [
    {id:1001,title:'没看大V玫琳凯 汲取奋进力量'},
    {id:1002,title:'疫后重振 在武汉过完美一天'},
      {id:1005,title:'海外疫情'},

]

//查找“疫情”关键字
let result=arr.findIndex((item,index) => {
    return item.title.includes('疫情')
})
  1. includes() //判断是否含有某个数组元素,如果含有返回true,否则返回false
  2. 字符串转数组:str.split()
    数组转字符患:arr.join()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值