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. EF Code First 无法加载指定的元数据资源

    是由属于一般出现这个错误是由于App.config里面配置错误,DB First 是不一样的. 配置文件不止一个地方··多查查其他项目有没有.

  2. Java 常见关键字总结:final、static、this、super!

    final,static,this,super 关键字总结 final 关键字 final关键字,意思是最终的.不可修改的,最见不得变化 ,用来修饰类.方法和变量,具有以下特点: final修饰的类不 ...

  3. Python学习【第3篇】:列表魔法

    ##########################深灰魔法-list类中提供的方法###################list 类,列表list = [1,12,9,"age" ...

  4. jQuery操作CheckBox的方法(选中,取消,取值)详解

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...

  5. shell (颜色输出)

    摘自https://www.cnblogs.com/t-road/p/10257296.html #!/bin/bash # #下面是字体输出颜色及终端格式控制 #字体色范围:30-37 echo - ...

  6. 小白搭建WAMP详细教程---mysql安装与设置

    MySQL分为安装版和解压版.为了以后MySQL出问题想重装时会出现各种不必要的麻烦,我们这里选择解压版MySQL.详细步骤如下: 一:Mysql官网下载Mysql解压版 到官网下载,网址为:http ...

  7. 敏捷史话(五):敏捷已逝 —— Dave Thomas

    " 敏捷已逝,但敏捷精神长存.因为所谓的敏捷专家卖给你的是方法论,而不是价值."当多数人都在从"敏捷"身上榨取利益时, Dave Thomas 成为了一位逆行者 ...

  8. 翻译:《实用的Python编程》01_01_Python

    目录 | 下一节 (1.2 第一个程序) 1.1 Python Python 是什么? Python 是一种解释型(译者注:区别于编译型)的高级语言, 通常被归类为 "脚本语言"  ...

  9. PTA甲级—STL使用

    1051 Pop Sequence (25分) [stack] 简答的栈模拟题,只要把过程想清楚就能做出来. 扫描到某个元素时候,假如比栈顶元素还大,说明包括其本身的在内的数字都应该入栈.将栈顶元素和 ...

  10. PTA刷题记录

    考虑到PAT甲级考试和开学后的XCPC比赛,决定寒假把PAT (Advanced Level) Practice刷完,进度条会在这篇博客下更新.由于主要以记录为主,大体上不会像单篇题解那么详细,但是对 ...