vue : 在vuex里写一个数组首尾元素互换的方法

不着急上代码,先想几个问题。

vuex里怎么写方法?

  mutation里写vuex方法,组件中用commit调用。

数组首尾元素怎么互换?

  arr.splice(0, 0, arr[arr.length - 1])
  arr.pop()

怎样让这个方法是可复用的?

  组件中commit的时候提交想改的数组名字,并在vuex方法中进行检测。

需要检测啥?

  1 state中是否存在这个变量

  2 这个变量是不是一个符合要求(length > 1)的数组?

怎样检测是否存在这个变量?

  Object.keys(state) 遍历 state变量名,如果能找到和提交的变量名相同的,则是合法的。

怎样检测这个变量是否符合要求?

  Array.isArray(arr) && arr.length > 1

好了,可以上代码了。

vuex mutation:
swapArrayFirstAndLast(state, name){

// console.log("name", name)

// console.log(Object.keys(state))

const stateNameArr = Object.keys(state)

for (let x in stateNameArr) {

// console.log(stateNameArr[x])

if (stateNameArr[x] === name) {

if (Array.isArray(state[name]) && state[name].length > 1) {

// console.log("===bingo===")

let arr = state[name]

arr.splice(0, 0, arr[arr.length - 1])

arr.pop()

break

} else {

return

}          

}

}      

}
component.vue:
this.$store.commit(‘swapArrayFirstAndLast‘, ‘aSimpleArray‘)

以上。



原文地址:https://www.cnblogs.com/foxcharon/p/10152632.html

时间: 2024-07-30 15:16:52

vue : 在vuex里写一个数组首尾元素互换的方法的相关文章

自己写一个与startWith类似的判断方法

package com.hanqi.lianxi; import java.util.Scanner; public class startWith { //自己写一个与startWith类似的判断方法 public static void main(String[] args) { //首先随便定义一个字符串如下 String str = "fghkldrt"; //提示我们自己输入一个字符串,用来判断输入的字符串是不是刚刚定义的字符串的开头 Scanner sc = new Sca

循环删除数组中元素的正确方法

1.循环删除数组中元素的正确方法 提起循环删除数组中的元素,最先想到的就是使用for循环和数组的splice方法来实现(正序循环删除方法),如下代码用来实现删除数组中大于2的元素: 1 let arr = [1, 2, 3, 4, 5, 4, 3, 2, 1]; 2 for (let i = 0, len = arr.length; i < len; i++) { 3 if (arr[i]> 2) { 4 arr.splice(i, 1); 5 } 6 } 7 console.log(arr)

写一个xml文件到磁盘的方法

/** * 往磁盘上写一个xml文件 * * <?xml version="1.0" encoding="UTF-8" standalone="true"?> //文档的神明 <persons> //标签tag <person id=“18"> //ID是person标签的一个属性 <name>allen</name> <age>36</age> <

C#把某个数组的一部分复制到另一个数组中的两种方法:Buffer.BlockCopy和Array.Copy

static void Main(string[] args) { int[] src = new[] { 1, 2, 3, 4, 5, 6 }; const int destLen = 4;//目标数组大小 int int_size = sizeof(int);//用于获取值类型的字节大小. int[] dest = new int[destLen]; //只支持基元类型,按字节偏移复制 Buffer.BlockCopy(src, (src.Length - destLen) * int_si

Js删除数组重复元素的多种方法

js对数组元素去重有很多种处理的方法,本篇文章中为网络资源整理,当然每个方法我都去实现了:写下来的目的是希望自己活学活用,下次遇到问题后方便解决. 第一种 1 function oSort(arr){ 2 var result={}; 3 var newArr=[]; 4 for(var i=0;i<arr.length;i++){ 5 if(!result[arr[i]]){ 6 console.log(result[arr[i]]); //看看输出的是什么 7 newArr.push(arr

前端面试高频题:删除数组重复元素的多种方法

最近在想着换工作,去了一家中关村的上市公司,面试官随便问了几个问题其中就提到了怎么删除数组元素的方法,表示这已经是第三次遇到了这个问题了,由于知识口头说说所以就随便说了下,之前用的时候都是直接找的方法库虽然知道大致是怎么写的但是还没有真正写过,网上的方法还是蛮多的这里也给大家分享一个作者写的吧,希望对初学者有所帮助: //数组去重的方法 Array.prototype.unique=function(){ //集中声明变量 var oldArr=this, newArr=[oldArr[0]],

Perl删除数组中元素的多种方法

Perl中的数组元素起始引用序号为0,@array的第一个元素为$array[0],依次递增,最后一个元素为$array[-1]或者$#array.如果要删除一个数组中已有的元素,可以用以下几个函数来实现. 1.函数名 grep调用语法 @foundlist = grep (pattern, @searchlist);解说 与同名的UNIX查找工具类似,grep函数在列表中抽取与指定模式匹配的元素,参      数pattern为欲查找的模式,返回值是匹配元素的列表.例子 @list = ("T

C++面向对象的学习:写一个数组类

凰00盟3NDT73澄F概http://www.zcool.com.cn/collection/ZMTgxNzIzMjg=.html O00W51槐AQ毓攀7柿http://www.zcool.com.cn/collection/ZMTgxNzI0NTY=.html 鄙3C虾Q莱烙艺橙俗OEUhttp://www.zcool.com.cn/collection/ZMTgxNzI0OTY=.html ZL2OWM乖3舅ZP坝裙http://www.zcool.com.cn/collection/Z

在一般处理程序里写一个简单验证码

QQ:675556820 代码不多,直接粘贴了. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 <%@ WebHandler Language="C#" Class="验证码" %> using Sy