historyReverser & array reverse
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
shift
unshift
slice
splice
includes
6.infdexOf
7.lastIndexOf
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的更多相关文章
- JS Array.reverse 将数组元素颠倒顺序
<pre><script type="text/javascript"> //JS Array.reverse 将数组元素颠倒顺序//在JavaScript ...
- JavaScript Array reverse 方法:颠倒数组中元素的顺序
在JavaScript中,Array对象的reverse()方法将颠倒(反转)数组中元素的顺序.arr.reverse()在原数组上实现这一功能,即,reverse()会改变原数组. 例1:将数组元素 ...
- es5 - array - reverse
/** * 描述:也就是数组元素反转 * 使用:arr.reverse() */ var a = [1,2,3]; console.log(a.reverse()); /** * 一个经典的问题:如何 ...
- Array(数组)对象-->reverse() 方法
1.定义和用法 reverse() 方法用于颠倒数组中元素的顺序:倒序. 语法: array.reverse() 举例: var arr = [1,2,3,4,5]; console.log(arr. ...
- 小tip:关于typeof,instanceof,toString(),valueOf(),toLocaleString(),join(),reverse(),sort(),pop(),push(),shift(),unshift()
typeof:用于检测一个变量是否是基本数据类型.instanceof用于检测某引用对象是什么类型的对象. var s = "Nicho"; var b = true; var n ...
- 读javascript高级程序设计07-引用类型、Object、Array
一.引用类型 ECMAScript是支持面向对象的,可以通过引用类型描述一类对象所具有的属性和方法. 创建对象实例的方法时是用new 操作符加构造函数:var p=new Person(). 二.Ob ...
- Array 数组常用方法
(1)基本的数组方法 1.join() Array.join()方法将数组中所有元素都转化为字符串并连接在一起,返回最后生成的字符串.可以自己指定分隔的符号,如果不指定,默认使用逗号 var arr ...
- javascript Array 方法学习
原生对象Array学习 Array.from() 从类似数组的对象或可迭代的对象返回一个数组 参数列表 arraylike 类似数组的对象或者可以迭代的对象 mapfn(可选) 对对象遍历映 ...
- JavaScript原生对象属性和方法详解——Array对象
http://www.feeldesignstudio.com/2013/09/native-javascript-object-properties-and-methods-array/ lengt ...
随机推荐
- Service Mesh架构的持续演进 单体模块化 SOA 微服务 Service Mesh
架构不止-严选Service Mesh架构的持续演进 网易严选 王育松 严选技术团队 2019-11-25 前言同严选的业务一样,在下层承载它的IT系统架构一样要生存.呼吸.增长和发展,否则过时的.僵 ...
- 数据库内核——基于HLC的分布式事务实现深度剖析
DTCC 2019 | 深度解码阿里数据库实现 数据库内核--基于HLC的分布式事务实现深度剖析-阿里云开发者社区 https://developer.aliyun.com/article/70355 ...
- oracle模糊查询mysql的区别
https://blog.csdn.net/weixin_38673554/article/details/86503982#_1 oracle与使用mysql的区别 https://www.cnbl ...
- Python的交互模式和直接运行.py文件有什么区别
使用文本编辑器 - 廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/1016959663602400/1017024645952992 直接输入python进入交互 ...
- libco协程原理简要分析
此文简要分析一下libco协程的关键原理. 在分析前,先简单过一些协程的概念,以免有新手误读了此篇文章. 协程是用户态执行单元,它的创建,执行,上下文切换,挂起,销毁都是在用户态中完成,对linux系 ...
- deepin定制deepin-terminal
一. 背景介绍 本人以前在win10上经常使用xshell来登陆服务器.xshell提供了很丰富的功能和快捷键.个人比较喜欢的包括三个功能 终端透明 双击时根据分隔符选中文字 突出显示 但是自从使用d ...
- (十六)配置多数据源,整合MybatisPlus增强插件
配置多数据源,整合MybatisPlus增强插件 多数据简介 MybatisPlus简介 1.案例实现 1.1 项目结构 1.2 多数据源配置 1.3 参数扫描类 1.4 配置Druid连接池 1.5 ...
- PIE模型
首先,我们需要明确程序的Bug有如下的定义: 1. Fault/Defect 静态的,存在于软件中的缺陷.例如:一段有缺失或者错误的代码. 2. Error 运行时一种不正确的中间状态. 3. Fai ...
- HDOJ 1242
纠结1242很久了,查了题解才发现要优先队列才能成功 http://blog.chinaunix.net/uid-21712186-id-1818266.html 使人开窍之文章 优先队列,已经不算是 ...
- Codeforces Round #646 (Div. 2) E. Tree Shuffling dfs
题意: 给你n个节点,这n个节点构成了一颗以1为树根的树.每一个节点有一个初始值bi,从任意节点 i 的子树中选择任意k个节点,并按他的意愿随机排列这些节点中的数字,从而产生k⋅ai 的成本.对于一个 ...