js数组方法大全
ztj100 2024-11-25 00:38 12 浏览 0 评论
<template>
<view>
</view>
</template>
<script>
export default{
methods:{
// 创建数组
// 创建空数组
onCreateEmptyArray () {
let arr1 = []
let arr2 = new Array()
let arr3 = Array.of()//es6新增
console.log("arr1:",arr1,"arr2:",arr2,"arr3:",arr3)
},
// 创建非空数组
onCreateFullArray(){
var arr5 = [20]; // 创建一个包含1项数据为20的数组
var arr6 = ["lily","lucy","Tom"]; // 创建一个包含3个字符串的数组
// 如果只传一个数值参数,则表示创建一个初始长度为指定数值的空数组
var arr7 = new Array(20);
console.log("arr7:",arr7)
// 如果传入一个非数值的参数或者参数个数大于 1,则表示创建一个包含指定元素的数组。
var arr8 = new Array("lily","lucy","Tom"); // 创建一个包含3个字符串的数组
var arr9 = new Array( 23 ); // ["23"]
console.log("arr8:",arr8,"arr9:",arr9)
let arr10 = Array.of(1, 2);//[1,2]
console.log("arr10:",arr10)
},
// 将数组转换为字符串:join方法
onTransArray(){
var arr = [1,2,3];
console.log('没有分隔符',arr.join(""))//123
console.log("默认用逗号作为分隔符:",arr.join())//1,2,3
console.log("参数任意参数作为分隔符:",arr.join("-"))//1-2-3
console.log("arr:",arr)//join方法不会修改原数组[1,2,3]
},
// 删除数组第一项:shift;删除数组最后一项:pop
onDeleteItem(){
let arr1 = ['a','b','c']
let arr2 = [1,2,3]
let shiftArr1 = arr1.shift()//返回值是删除的内容
let popArr2 = arr2.pop()//返回值是删除的内容
console.log("shiftArr1",shiftArr1)
console.log("popArr2",popArr2)
console.log("arr1",arr1)//会修改原数组
console.log("arr2",arr2)//会修改原数组
},
//给数组第一项unshift或者最后一项push添加内容
onAddItem(){
let arr1 = ['a','b','c']
let arr2 = [1,2,3]
let unshiftArr1 = arr1.unshift("d","f")//返回值是新数组的长度
let pushArr2 = arr2.push(4,5)//返回值是新数组的长度
console.log("unshiftArr1",unshiftArr1)
console.log("pushArr2",pushArr2)
console.log("arr1",arr1)//会修改原数组
console.log("arr2",arr2)//会修改原数组
},
// 连接数组concat,只能把数组拆分一次
onConcatArray(){
var arr = [1,3,5,7];
var arrCopy = arr.concat(9,[11,13]);
var arrCopy1 = arr.concat([9,10,11])//[1,3,5,7,9,10,11],相当于合并数组
console.log("arrCopy:",arrCopy); //[1, 3, 5, 7, 9, 11, 13]传入的不是数组,则直接把参数添加到数组后面,
console.log("arr:",arr); // [1, 3, 5, 7](原数组未被修改)
var arrCopy2 = arr.concat([9,[11,13]]);//连接二维数组
console.log(arrCopy2); //[1, 3, 5, 7, 9, Array[2]]
},
// 截取数组slice
onSliceArray(){
var arr = [1,2,3,4]
var sliceArray = arr.slice(1)//只有一个参数,结束位置是当前数组末尾,返回截取的新数组
var sliceArray1 = arr.slice(1,3)//两个参数,包含开始不包含结束,[2,3]
var arrCopy3 = arr.slice(1,-2);//相当于arr.slice(1,4),当出现负数时,将负数加上数组长度的值(6)来替换该位置的数
console.log(sliceArray,sliceArray1,arrCopy3,arr)//不修改原数组
},
//删除、插入和替换一体的splice方法
onSpliceArray (){
//删除元素
var arr = [1,3,5,7,9,11];
var arrRemoved = arr.splice(0,2);//可以删除任意数量的项,和slice用法一样:要删除的第一项的位置和要删除的项数。[1,3]
console.log(arr); //[5, 7, 9, 11]修改原数组
//添加元素
//可以向指定位置插入任意数量的项,只需提供 3 个参数:起始位置、 0(要删除的项数)和要插入的项。
//例如,splice(2,0,4,6)会从当前数组的位置 2 开始插入 4 和 6。
var array1 = [22, 3, 31, 12];
array1.splice(1, 0, 12, 35); //返回值是一个空数组[]
console.log(array1); // [22, 12, 35, 3, 31, 12],会修改原数组
// 替换元素
const array2 = [22, 3, 31, 12];
array2.splice(1, 1, 8); //返回值是被替换元素形成的数组[3]
console.log(array2); // [22, 8, 31, 12],修改原数组
},
// 查找某个元素在数组中的索引indexOf 和 lastIndexOf
onIndexofArray()
/*
接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。
lastIndexOf:从数组的末尾开始向前查找。
这两个方法都返回要查找的项在数组中的位置,或者在没找到的情况下返回-1。
*/
var arr = [1,3,5,7,7,5,3,1];
console.log(arr.indexOf(5)); //2
console.log(arr.lastIndexOf(5)); //5
console.log(arr.indexOf(5,2)); //2
console.log(arr.lastIndexOf(5,4)); //2
console.log(arr.indexOf("5")); //-1
},
//遍历数组的三个方法
// 一 forEach
onForEachArray(){
// 对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值。
// 参数都是 function 类型,默认有传,。
// 参数分别为:遍历的数组内容;第对应的数组索引,数组本身
var arr = [11, 22, 33, 44, 55];
arr.forEach(function(x, index, a){
console.log(x + '|' + index + '|' + (a === arr));
});
},
// 二 map方法
onMapArray(){
/*map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。参数是function类型
该方法不会改变原数组*/
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.map(function(item){
return item*item;
});
console.log(arr2); //[1, 4, 9, 16, 25]
},
// 三 filter方法
onFilterArray(){
/*“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。
filter方法的参数是一个函数,函数的参数有两个,分别是每项的值和对应的下标*/
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.filter(function(x, index) {
return index >1 && x <= 8;
});
console.log("----",arr2); //[3, 4, 5, 6, 7, 8]
},
//向数组中填充元素的fill方法,es6新增
onFillArray(){
//一个参数,会将原数组所有项替换成参数
let arr = [1, 2, 3, 4, 5];
let newArr = arr.fill(1);//[1,1,1,1,1];返回值就是新数组
console.log(arr);//[1,1,1,1,1];
//三个参数
let arr1 = [1, 2, 3, 4 , 5];
arr1.fill(0, 1, 3);
console.log(arr1);//[1,0,0,1,1];
},
//every和some
onJudgeAnswer(){
//every方法,只要有一个item判断是false,就会返回false;所有是true才返回true
let arr1 = [3,4,5]
let res1 = arr1.every(function(item){
return item > 2
})
console.log("res1",res1)
//some方法,只要有一个item判断是true,就会返回true;所有是false才返回false
let arr2 = [3,4,5]
let res2 = arr2.every(function(item){
return item > 2
})
console.log("res2",res2)
},
//判断一个数组是否包含一个指定的值的方法include
onIncludeItem(){
// 参数有两个,其中第一个是(必填)需要查找的元素值,第二个是(可选)开始查找元素的位置
const array1 = [22, 3, 31, 12];
const includes = array1.includes(31);
console.log(includes); // true
const includes1 = array1.includes(31, 3); // 从索引3开始查找31是否存在
console.log(includes1); // false
}
},
mounted() {
this.onCreateEmptyArray()
this.onCreateFullArray()
this.onTransArray()
this.onAddItem()
this.onConcatArray()
this.onSliceArray()
this.onSpliceArray()
this.onForEachArray()
this.onMapArray()
this.onFilterArray()
this.onFillArray()
this.onJudgeAnswer()
}
}
</script>
- 上一篇:js中数组方法全解
- 下一篇:js数组常用方法总结
相关推荐
- Vue 技术栈(全家桶)(vue technology)
-
Vue技术栈(全家桶)尚硅谷前端研究院第1章:Vue核心Vue简介官网英文官网:https://vuejs.org/中文官网:https://cn.vuejs.org/...
- vue 基础- nextTick 的使用场景(vue的nexttick这个方法有什么用)
-
前言《vue基础》系列是再次回炉vue记的笔记,除了官网那部分知识点外,还会加入自己的一些理解。(里面会有部分和官网相同的文案,有经验的同学择感兴趣的阅读)在开发时,是不是遇到过这样的场景,响应...
- vue3 组件初始化流程(vue组件初始化顺序)
-
学习完成响应式系统后,咋们来看看vue3组件的初始化流程既然是看vue组件的初始化流程,咋们先来创建基本的代码,跑跑流程(在app.vue中写入以下内容,来跑流程)...
- vue3优雅的设置element-plus的table自动滚动到底部
-
场景我是需要在table最后添加一行数据,然后把滚动条滚动到最后。查网上的解决方案都是读取html结构,暴力的去获取,虽能解决问题,但是不喜欢这种打补丁的解决方案,我想着官方应该有相关的定义,于是就去...
- Vue3为什么推荐使用ref而不是reactive
-
为什么推荐使用ref而不是reactivereactive本身具有很大局限性导致使用过程需要额外注意,如果忽视这些问题将对开发造成不小的麻烦;ref更像是vue2时代optionapi的data的替...
- 9、echarts 在 vue 中怎么引用?(必会)
-
首先我们初始化一个vue项目,执行vueinitwebpackechart,接着我们进入初始化的项目下。安装echarts,npminstallecharts-S//或...
- 无所不能,将 Vue 渲染到嵌入式液晶屏
-
该文章转载自公众号@前端时刻,https://mp.weixin.qq.com/s/WDHW36zhfNFVFVv4jO2vrA前言...
- vue-element-admin 增删改查(五)(vue-element-admin怎么用)
-
此篇幅比较长,涉及到的小知识点也比较多,一定要耐心看完,记住学东西没有耐心可不行!!!一、添加和修改注:添加和编辑用到了同一个组件,也就是此篇文章你能学会如何封装组件及引用组件;第二能学会async和...
- 最全的 Vue 面试题+详解答案(vue面试题知识点大全)
-
前言本文整理了...
- 基于 vue3.0 桌面端朋友圈/登录验证+60s倒计时
-
今天给大家分享的是Vue3聊天实例中的朋友圈的实现及登录验证和倒计时操作。先上效果图这个是最新开发的vue3.x网页端聊天项目中的朋友圈模块。用到了ElementPlus...
- 不来看看这些 VUE 的生命周期钩子函数?| 原力计划
-
作者|huangfuyk责编|王晓曼出品|CSDN博客VUE的生命周期钩子函数:就是指在一个组件从创建到销毁的过程自动执行的函数,包含组件的变化。可以分为:创建、挂载、更新、销毁四个模块...
- Vue3.5正式上线,父传子props用法更丝滑简洁
-
前言Vue3.5在2024-09-03正式上线,目前在Vue官网显最新版本已经是Vue3.5,其中主要包含了几个小改动,我留意到日常最常用的改动就是props了,肯定是用Vue3的人必用的,所以针对性...
- Vue 3 生命周期完整指南(vue生命周期及使用)
-
Vue2和Vue3中的生命周期钩子的工作方式非常相似,我们仍然可以访问相同的钩子,也希望将它们能用于相同的场景。...
- 救命!这 10 个 Vue3 技巧藏太深了!性能翻倍 + 摸鱼神器全揭秘
-
前端打工人集合!是不是经常遇到这些崩溃瞬间:Vue3项目越写越卡,组件通信像走迷宫,复杂逻辑写得脑壳疼?别慌!作为在一线摸爬滚打多年的老前端,今天直接甩出10个超实用的Vue3实战技巧,手把...
- 怎么在 vue 中使用 form 清除校验状态?
-
在Vue中使用表单验证时,经常需要清除表单的校验状态。下面我将介绍一些方法来清除表单的校验状态。1.使用this.$refs...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- Vue 技术栈(全家桶)(vue technology)
- vue 基础- nextTick 的使用场景(vue的nexttick这个方法有什么用)
- vue3 组件初始化流程(vue组件初始化顺序)
- vue3优雅的设置element-plus的table自动滚动到底部
- Vue3为什么推荐使用ref而不是reactive
- 9、echarts 在 vue 中怎么引用?(必会)
- 无所不能,将 Vue 渲染到嵌入式液晶屏
- vue-element-admin 增删改查(五)(vue-element-admin怎么用)
- 最全的 Vue 面试题+详解答案(vue面试题知识点大全)
- 基于 vue3.0 桌面端朋友圈/登录验证+60s倒计时
- 标签列表
-
- idea eval reset (50)
- vue dispatch (70)
- update canceled (42)
- order by asc (53)
- spring gateway (67)
- 简单代码编程 贪吃蛇 (40)
- transforms.resize (33)
- redisson trylock (35)
- 卸载node (35)
- np.reshape (33)
- torch.arange (34)
- node卸载 (33)
- npm 源 (35)
- vue3 deep (35)
- win10 ssh (35)
- exceptionininitializererror (33)
- vue foreach (34)
- idea设置编码为utf8 (35)
- vue 数组添加元素 (34)
- std find (34)
- tablefield注解用途 (35)
- python str转json (34)
- java websocket客户端 (34)
- tensor.view (34)
- java jackson (34)