historyReverser & array reverse\


"use strict"; /**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
*
* @description historyReverser
* @augments Reverse 逆向 / Recursive 递归
* @example
* @link
*
*/ const historyReverser = (datas = [], text = ``, debug = false) => {
let result = {};
let newDatas = [];
let reverseDatas = [];
let length = datas.length;
if (length === 10) {
if(datas.includes(text)) {
// remove old & add new
let index = datas.indexOf(text);
datas.splice(index, 1);
datas.push(text);
} else {
// add new
datas.push(text);
datas.shift(0);
}
} else {
datas.push(text);
}
newDatas = datas;
datas.forEach(
(item, i) => {
let value = datas[length - i - 1];
reverseDatas.push(value);
}
);
result = {
newDatas,
reverseDatas,
};
return result;
}; export default historyReverser; export {
historyReverser,
};

tesing


let datas = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] let text = "5";
// let text = "15";
const historyReverser = (datas = [], text = ``, debug = false) => {
let result = {};
let newDatas = [];
let reverseDatas = [];
let length = datas.length;
if (length === 10) {
if(datas.includes(text)) {
// remove old & add new
let index = datas.indexOf(text);
datas.splice(index, 1);
datas.push(text);
} else {
// add new
datas.push(text);
datas.shift(0);
}
} else {
datas.push(text);
}
newDatas = datas;
datas.forEach(
(item, i) => {
let value = datas[length - i - 1];
reverseDatas.push(value);
}
);
result = {
newDatas,
reverseDatas,
};
return result;
}; let ReverseArray = historyReverser(datas, text); console.log(`ReverseArray =`, ReverseArray);

MDN & Array

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

0.push

  1. shift

  2. unshift

  3. slice

  4. splice

  5. includes

    6.infdexOf

    7.last​IndexOf


bug


"use strict"; /**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
*
* @description historyReverser
* @augments Reverse 逆向 / Recursive 递归
* @example
* @link
*
*/ const historyReverser = (datas = [], text = ``, debug = false) => {
if (text === null) {
text = `xyz`;
}
let result = {};
let newDatas = [];
let reverseDatas = [];
let length = datas.length;
if (length === 10) {
if(datas.includes(text)) {
// remove old & add new
let index = datas.indexOf(text);
datas.splice(index, 1);
datas.push(text);
} else {
// add new
datas.push(text);
datas.shift(0);
}
if(datas.includes(text)) {
// remove old & add new
let index = datas.indexOf(text);
datas.splice(index, 1);
datas.push(text);
} else {
// add new
datas.push(text);
datas.shift(0);
}
} else {
datas.push(text);
}
newDatas = datas;
// datas.forEach(
// (item, i) => {
// let value = datas[length - i - 1];
// console.log(`null value`, value);
// reverseDatas.push(value);
// }
// );
if (1 <= length) {
datas.forEach(
(item, i) => {
let value = datas[length - i - 1];
console.log(`null value`, value);
reverseDatas.push(value);
}
);
} else {
reverseDatas = datas;
}
result = {
newDatas,
reverseDatas,
};
return result;
}; export default historyReverser; export {
historyReverser,
};

OK

unshfit


"use strict"; /**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
*
* @description historyReverser
* @augments Reverse 逆向 / Recursive 递归
* @example
* @link
*
*/ const historyReverser = (datas = [], text = ``, debug = false) => {
// console.log(`datas =`, datas);
// console.log(`text =`, text);
let result = {};
let newDatas = [];
let reverseDatas = [];
let length = datas.length;
// if(datas.indexOf(text) !== -1) {
if(datas.includes(text)) {
// remove old & add new
let index = datas.indexOf(text);
datas.splice(index, 1);
console.log(`datas =`, datas);
datas.unshift(text);
// datas.push(text);
} else {
// add new
if (length === 10) {
datas.splice(9, 1);
datas.unshift(text);
// datas.push(text);
// datas.shift(0);
} else {
// add new
datas.unshift(text);
// datas.push(text);
}
}
newDatas = datas;
reverseDatas = datas;
// let new_length = newDatas.length;
// if (1 <= new_length) {
// let temp = datas;
// reverseDatas = temp.reverse();
// // datas.forEach(
// // (item, i) => {
// // let value = datas[new_length - i - 1];
// // // console.log(`value`, value);
// // reverseDatas.push(value);
// // }
// // );
// } else {
// reverseDatas = datas;
// }
result = {
newDatas,
reverseDatas,
};
return result;
}; export default historyReverser; export {
historyReverser,
};

historyReverser & array reverse的更多相关文章

  1. JS Array.reverse 将数组元素颠倒顺序

    <pre><script type="text/javascript"> //JS Array.reverse 将数组元素颠倒顺序//在JavaScript ...

  2. JavaScript Array reverse 方法:颠倒数组中元素的顺序

    在JavaScript中,Array对象的reverse()方法将颠倒(反转)数组中元素的顺序.arr.reverse()在原数组上实现这一功能,即,reverse()会改变原数组. 例1:将数组元素 ...

  3. es5 - array - reverse

    /** * 描述:也就是数组元素反转 * 使用:arr.reverse() */ var a = [1,2,3]; console.log(a.reverse()); /** * 一个经典的问题:如何 ...

  4. Array(数组)对象-->reverse() 方法

    1.定义和用法 reverse() 方法用于颠倒数组中元素的顺序:倒序. 语法: array.reverse() 举例: var arr = [1,2,3,4,5]; console.log(arr. ...

  5. 小tip:关于typeof,instanceof,toString(),valueOf(),toLocaleString(),join(),reverse(),sort(),pop(),push(),shift(),unshift()

    typeof:用于检测一个变量是否是基本数据类型.instanceof用于检测某引用对象是什么类型的对象. var s = "Nicho"; var b = true; var n ...

  6. 读javascript高级程序设计07-引用类型、Object、Array

    一.引用类型 ECMAScript是支持面向对象的,可以通过引用类型描述一类对象所具有的属性和方法. 创建对象实例的方法时是用new 操作符加构造函数:var p=new Person(). 二.Ob ...

  7. Array 数组常用方法

    (1)基本的数组方法 1.join() Array.join()方法将数组中所有元素都转化为字符串并连接在一起,返回最后生成的字符串.可以自己指定分隔的符号,如果不指定,默认使用逗号 var arr ...

  8. javascript Array 方法学习

    原生对象Array学习 Array.from()   从类似数组的对象或可迭代的对象返回一个数组 参数列表 arraylike  类似数组的对象或者可以迭代的对象 mapfn(可选)   对对象遍历映 ...

  9. JavaScript原生对象属性和方法详解——Array对象

    http://www.feeldesignstudio.com/2013/09/native-javascript-object-properties-and-methods-array/ lengt ...

随机推荐

  1. OPTIONS的预请求(Preflighted Request)

    OPTIONS的预请求(Preflighted Request) Ajax 请求中出现OPTIONS(Request Method: OPTIONS)_qiao-CSDN博客 https://blog ...

  2. Linux的.a、.so和.o文件 windows下obj,lib,dll,exe的关系 动态库内存管理 动态链接库搜索顺序 符号解析和绑定 strlen函数的汇编实现分析

    Linux的.a..so和.o文件 - chlele0105的专栏 - CSDN博客 https://blog.csdn.net/chlele0105/article/details/23691147 ...

  3. 利用Mixins扩展类功能

    8.18 利用Mixins扩展类功能 - python3-cookbook 3.0.0 文档 https://python3-cookbook.readthedocs.io/zh_CN/latest/ ...

  4. TCMalloc源码学习(二)

    替换libc中的malloc free 不同平台替换方式不同. 基于unix的系统上的glibc,使用了weak alias的方式替换.具体来说是因为这些入口函数都被定义成了weak symbols, ...

  5. react报错 TypeError: Cannot read property 'setState' of undefined

    代码如下: class test extends Component { constructor(props) { super(props); this.state = { liked: false ...

  6. gcc选项 笔记

    gcc –E hello.c –o hello.i   使用gcc的选项"-E" 让gcc在预处理结束后停止编译过程. gcc –S hello.i –o hello.s   &q ...

  7. java身份证号校验

    package com.pt.modules.contract.utils; import java.text.ParseException; import java.text.SimpleDateF ...

  8. Spring3文件上传,提速你的Web开发

    Spring1 推出的时候可以说是不小的颠覆了J2EE 的开发,彻底把EJB打败,将J2EE开发进行简化,Spring2 推出以后完美的与多种开源框架与服务器的结合,让你对其拥抱的更紧,Spring变 ...

  9. 读取固定ResourceBundle

    private static ResourceBundle ssoBundle = ResourceBundle.getBundle("CASHHSSO");//默认根目录 pub ...

  10. DEDECMS:解决BMP、jpeg图片或MP4视频无法上传和在后台无法显示

    一.BMP图片无法上传解决方法: 1.修改配置文件: 在include-->dialog的文件夹下, select_images_post.php--> 把 $sparr = Array( ...