IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue和js原生实现数组元素依次前后交换位置 -> 正文阅读

[JavaScript知识库]vue和js原生实现数组元素依次前后交换位置

需求:

此案例在vue中才能体现出真正价值,但是却很好的考察了js的基础扎不扎实

先来个js原生的底层逻辑和js的基础知识

  <script>
    let arr = ["帅哥", "美女", "程序猿"]

    // 筛选出数组的第一个元素
    let firstArr = arr.filter((item, index) => index === 0)

    // 筛选出数组的除第一个元素的其他元素
    let rearArr = arr.filter((item, index) => !index === 0)

    //  concat 拼接数组 括号里面(firstArr)的会被拼接到(rearArr)数组的最后面 
    // 得到的数组就可以实现**数组元素依次前后交换位置**
    rearArr.concat(firstArr)

    // arr = rearArr.concat(firstArr) 如果此时把这个结果赋值给原数组
    就实现 [ "美女", "程序猿", "帅哥"]

  </script>

这里运用到了数组的filter()方法: 可以筛选数组里面满足条件的元素,返回一个新数组并且不会影响原来的数组

和concat()方法可以合并两个数组成一个新数组不会影响原数组()里面是被合并的数组,会被合并到使用方法的数组的最后面

为什么一直强调会不会影响元数组?因为在vue中是靠数据驱动页面的内容的,如果页面使用到数组里的数据,数组的元素改变的页面也就跟着一起改变了。接下来看vue中的实例

架手架中的文件:

<template>
  <div id="app">
    <ul>
      <li v-for="(item, index) in myArr" :key="index">{{ item }}</li>
    </ul>
    <button @click="go">走一走</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      myArr: ["帅哥", "美女", "程序猿"],
      // isIndex: 0,
      firstItem: [],
      laterItem: [],
    };
  },
  methods: {
    go() {
      this.firstItem = this.myArr.filter((item, index) => index == 0);
      this.laterItem = this.myArr.filter((item, index) => !index == 0);
      this.myArr = this.laterItem.concat(this.firstItem);
    },
  },
};
</script>

?没有脚手架,引入js文件:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <div id="app">
    <ul>
      <li v-for="(item, index) in myArr" :key="index">{{ item }}</li>
    </ul>
    <button @click="go">走一走</button>
  </div>

  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        myArr: ["帅哥", "美女", "程序猿"],
        // isIndex: 0,
        firstItem: [],
        laterItem: [],
      },
      methods: {
        go() {
          this.firstItem = this.myArr.filter((item, index) => index == 0);
          this.laterItem = this.myArr.filter((item, index) => !index == 0);
          this.myArr = this.laterItem.concat(this.firstItem);
        },
      },
    })
  </script>
</body>

</html>

?关于数组的所有方法也有小总结:

数组

arr.push() 给数组的末尾添加数据,并返回新的长度, 影响原来的数组

arr.pop() 删除数组的最后一个元素,并返回删除的这个元素, 影响原来的数组

arr.shift() 删除数组的第一个元素,并返回删除的这个元素, 影响原来的数组

arr.unshift() 向数组的第一个位置添加元素,并返回新的长度, 影响原来的数组

arr.reverse() 翻转数组 翻转数组的排序:顺序 倒序 切换, 影响原来的数组

arr.splice(起始位置,结束位置,替换的值) splice 方法可以实现数组的删除、添加、修改。取决于第二个值,删除数组元素指定元素 如果只传一个参数 表示从这个起始位置删除到最后, 影响原来的数组

arr.sort((a,b)=> a-b) 数组排序

a-b:升序排列

b-a:降序排列

arr.reduce() 数组求和方法,不会影响原来的数组

arr.filter() 筛选过滤数组里满足的元素,并存入一个空数组里面返回这个数组,不会影响原来的数组

arr.findIndex() 筛选满足条件的数组的索引值,不会影响原来的数组

arr.concat() 方法用于连接两个或多个数组,不会影响原来的数组

arr.indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。

arr.join('') 分隔 把数组用给定的分隔符隔开 存入一个字符串,不会影响原来的数组

arr.slice(起始位置,结束位置) 分割数组元素 截取数组的某些元素并返回一个新的数组对象,不会影响原来的数组

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:03:52  更:2022-02-19 01:06:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:02:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码