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. Mysql四种通信协议(linux下本地连接的都是socket 其他都是tcp)

    Mysql通信协议 - 张冲andy - 博客园 https://www.cnblogs.com/andy6/p/6204579.html

  2. SonarQube+jenkins-自动化持续代码扫描

    SonarQube+jenkins-自动化持续代码扫描 1.SonarQube 1.1 SonarQube介绍 1.1.1 SonarQube 工作流程 1. 2 Docker方式安装SonarQub ...

  3. Spark剖析-宽依赖与窄依赖、基于yarn的两种提交模式、sparkcontext原理剖析

    Spark剖析-宽依赖与窄依赖.基于yarn的两种提交模式.sparkcontext原理剖析 一.宽依赖与窄依赖 二.基于yarn的两种提交模式深度剖析 2.1 Standalne-client 2. ...

  4. 深复制VS浅复制(MemberwiseClone方法介绍)

    MemberwiseClone方法,属于命名空间System,存在于程序集 mscorlib.dll中.返回值是System.Object.其含义是:创建一个当前object对象的浅表副本. MSDN ...

  5. python flask_sqlalchemy 多态 polymorphic 实现单表继承

    sqlalchemy 多态 polymorphic 实现单表继承 sqlaclchemy中的单表继续就是以一个模型类为基类,其他模型类继承基类,所有模型类的的数据都存一张表里面(也可以是多张,只不过基 ...

  6. 基于Java+Spring Boot开源项目JeeSite的Jenkins持续交互介绍

    一.实战项目介绍- JeeSite 基于Spring Boot 2.0 数据存储MySQL 语言:Java 规模大小:适中,适合初学者 源码地址:https://gitee.com/thinkgem/ ...

  7. 设计模式(五)——原型模式(加Spring框架源码分析)

    原型模式 1 克隆羊问题 现在有一只羊 tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和 tom 羊 属性完全相同的 10 只羊. 2 传统方式解决克隆羊问题 1) 思路分析(图 ...

  8. 力扣643.子数组最大平均数I-C语言实现

    题目 给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数. 示例: 输入:[1,12,-5,-6,50,3], k = 4 输出:12.75 解释:最大平均数 (12-5- ...

  9. Luogu T10025 排列名次

    题目链接 题目描述 给定一个长度为n的排列,要求输出该排列的字典序名次(1,2,3,...,n的名次为1). 输入输出格式 输入格式: 第一行一个数n,表示排列长度. 第二行n个数,用空格分隔,表示一 ...

  10. hdu4507吉哥系列故事——恨7不成妻 (数位dp)

    Problem Description 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥观察了214和77这两个数,发现: ...