arr

vue cookie

一曲冷凌霜 提交于 2020-03-30 03:59:02
使用js-cookie依赖包 更多参考: https://www.npmjs.com/package/js-cookie 安装 cnpm install js-cookie --save 使用 import cookies from 'js-cookie' // 设置cookie cookies.set('name', 'value') cookies.set('name', 'value', { expires: days }) // 获取cookie cookies.get('name') // 删除cookie cookies.remove('name') 自己封装cookie的操作方法 建立cookie.js // 获取cookie export function getCookie(key) { var arr = [] var reg = new RegExp('(^| )' + key + '=([^;]*)(;|$)') arr = document.cookie.match(reg) if (arr) { return decodeURIComponent(arr[2]) } else { return null } } // 设置cookie export function setCookie(key, value, expiredays) { var

js 测试

依然范特西╮ 提交于 2020-03-30 03:56:45
今天js测试题目: 被基础题目虐暴。。。。。。惨不忍睹 1. var num = 2; switch(num){   case 1: console.log("1");   case 2: console.log("2");   default: console.log("default"); }输出结果为()// 2和default; 从2进入switch,因为没有break;所以2以后的都要执行。 2.js中的命名法: 1)匈牙利命名法 2)大驼峰 3)小驼峰 4)下划线命名法 (当时没有想起来!!) 3.在数组末端添加元素 push(); 在数组末端删除元素 pop(); 在数组第一个位置添加元素 unshift(); 在数组第一位置删除元素 shift(); 颠倒数组元素 reverse(); 4.生成对象的三种方法: 1) var obj = {}; 2) var obj = new Object(); 3) Var obj = Object.create(null); // 他是基于另一个对象而生成的对象,可以继承上一个对象的属性,也可以添加和改变。 var obj1 = { name : "zdh", age: 21 } var obj2 = Object.create(obj); console.log(obj2.age); //21

[读书笔记]了不起的node.js(三)

十年热恋 提交于 2020-03-30 03:34:17
这周的 nodejs 学习内容为几个依赖包的使用,把书上的例子都敲了一遍。这篇就以例程为线索,复习一下一周的工作。 1. connect 这个例程主要是使用 connect 依赖包, connect 提供一个中间件(由函数组成,与请求、响应对象交互)的功能。书中也介绍了 connect 内置其他的中间件,这些中间件起到组织代码完成 web 功能的作用。 2. session 使用 connect 进行用户会话,进行基本的登录系统。通过中间件实现了检查登录、展示表单、用户匹配、处理登出的功能。展示了中间件的强大和组织方式。 3. express-tweet 这章学习了用 express 包, express 基于 connect 。程序设计依旧简单,不过版本不同的 np 中,函数名会产生一些变化,比如 express.createServer() 在3.0后就变成了 express() 。使用 express 最大的益处就是它简洁又不失灵活。不过 tweet 访问不到,而改写成微博时, weibo 的 API 访问又过于复杂,这个程序其实是没有成功跑起来的。 4. echo 这两个例程使用的是 WebSocket 包, echo 的功能主要就是记录消息传输的时间。 Websocket 的调戏方式就 ws 来监听( on )一个事件,在回调函数中进行处理,在 html 文件中也要使用

JS 7种数组去重的方法

泄露秘密 提交于 2020-03-29 17:46:45
JS 数组去重的方法 方法一:多层循环比较 利用splice的特性,比较两个数是否相同,获得相同元素的下标,删除相同元素,改变原数组,获得去重后的数组 function uniqueArr(arr){ for(var i = 0;i < arr.length ;i++){ for(var j = i + 1;j < arr.length - 1; j++){ if(arr[i] == arr[j]){ arr.splice(j,1); } } } return arr; } 方法二:利用indexOf() 设置一个新的数据用来接收数据,利用indexOf 来判断 数据是否存在于 新数组中,不存在,则添加进去,获得去重后的新数组 function uniqueArr(arr){ var newArr = []; for(var i = 0;i < arr.length;i++){ if(newArr.indexOf(arr[i]) < 0){ newArr.push(arr[i]); } } return newArr; } 方法三:对象键值对法 定义一个对象,用数组中的元素作为对象属性名,如果对象名不存在,那么将该元素添加到新数组中,给对应的属性值 设置 一个值作为标记,不一定为1,获得去重后的新数组 function uniqueArr(arr){ var obj = {};

N皇后问题求解

久未见 提交于 2020-03-29 12:29:04
用js递归了个算法: // queenNum 为皇后个数, showResult为function(arr){}函数指针 function queen(queenNum, showResult){ var arr = (function(){ var arr = new Array(queenNum); for(var i=0; i<arr.length; i++){ arr[i] = 0; } return arr; })(); var isSafe = function(colIndex, rowValue){ for(var i = 0; i<colIndex; i++){ if(arr[i] == rowValue || colIndex - i == rowValue - arr[i] || colIndex - i == arr[i] - rowValue){ return false; } } return true; }; var placeQueen = function(colIndex){ var rowValue = 0; while(rowValue < arr.length){ if(isSafe(colIndex, rowValue)){ arr[colIndex] = rowValue; if(colIndex == arr.length - 1){

7.数组

荒凉一梦 提交于 2020-03-28 17:25:52
一、数组的概述 1.定义   多个相同数据类型的数据按照一定的顺序排列的集合,使用一个名字命名,并通过编号的方式对这些数据进行统一管理。 2.特点   ①数组是有序排列的;   ②数组本身是引用数据类型,数组中的元素既可以是基本数据类型,也可以是引用数据类型;   ③创建数组会在内存中开辟一整块连续的空间,而数组通过数组名引用的是这块连续空间的首地址;   ④数组一旦初始化完成,其长度就确定了;数组的长度一旦确定,就不能修改;   ⑤通过索引来访问数组中的元素,速度很快 3.分类 按照维数:一维数组、二维数组、多维数组 按照数组中元素的类型:基本数据类型元素的数组、引用数据类型元素的数组 二、一维数组 1.一维数组的声明和初始化 public class test { public static void main(String[] args) { //数组的声明 int[] arr1; String arr2[]; //数组的静态初始化 arr1 = new int[]{1, 2, 3}; //数组的动态初始化 arr2 = new String[4]; //声明+初始化 int[] arr3 = new int[3]; //类型推断 String[] arr4 = {"str1", "str2", "str3"}; } } 2.访问一维数组中的元素 public class

js中数组对象去重的几种方法

谁都会走 提交于 2020-03-28 10:51:06
var arr = [{ key: '01', value: '乐乐' }, { key: '02', value: '博博' }, { key: '03', value: '淘淘' },{ key: '04', value: '哈哈' },{ key: '01', value: '乐乐' }]; // 方法1:利用对象访问属性的方法,判断对象中是否存在key var result = []; var obj = {}; for(var i =0; i<arr.length; i++){ if(!obj[arr[i].key]){ result.push(arr[i]); obj[arr[i].key] = true; } } console.log(result); // [{key: "01", value: "乐乐"},{key: "02", value: "博博"},{key: "03", value: "淘淘"},{key: "04", value: "哈哈"}] // 方法2:利用reduce方法遍历数组,reduce第一个参数是遍历需要执行的函数,第二个参数是item的初始值 var obj = {}; arr = arr.reduce(function(item, next) { obj[next.key] ? '' : obj[next.key] = true &

js笔记10

随声附和 提交于 2020-03-28 06:12:43
1.闭包    封装:减少代码的冗余,提高代码的重复利用率   继承:本来需要开辟多个空间,只需要开辟一个空间,减少内存的消耗,提高性能   函数归属:函数归属谁,跟他在哪调用没有关系,而跟他在哪定义有关   闭包的定义:函数在调用的时候,会形成一个私有作用域,内部的变量不能被外部访问,这种保护机制叫闭包(这就意味着函数调用完毕,这个函数形成的栈内存就会被销毁)   栈内存被销毁的案例:    function fn(){     var a=12;     a++;      console.log(a)   }   fn() //13   fn() //13   fn() //13 (因内部存在一个变量,所以在函数内部栈内存就会被销毁)       但有时候,我们不希望他被销毁 ,所以需要return   案例:    function fn(){     var a=12     return function(){       a++;       console.log(a)     }   }   var ss=fn()   ss()  //13   ss()  //14   ss()  //15    解析:       fn()调用完毕后得到的是一个匿名函数,但这个匿名函数在fn()这个作用域下定义的,所以匿名函数内部的变量在fn()作用域下查找

js深拷贝与浅拷贝

左心房为你撑大大i 提交于 2020-03-28 05:54:09
实现一个页面或者一个功能时,常常遇到的场景需要我们备份一个数组或者对象,这时候出现了深拷贝与浅拷贝效果截然不同呀总结如下: 浅拷贝: 1 var 2 arr = [1, 2, 3, 4], 3 shallowArr = a; 4 arr[0] = "change"; 5 console.log(arr); 6 console.log(shallowArr); 很简单的例子,很明显结果是两个数组第一项同时发生改变,原因是因为arr与shallowArr两数组为同一数组,仅仅是地址名不同,而地址却是同一个。那么如何避免上面的情况发生呢那就是深拷贝了。 深拷贝: 1 var 2 arr = [1, 2, 3, 4], 3 deepArr = [].concat(arr); 4 console.log(arr === shallowArr); // false 上述代码这是针对数组内部为简单类型的深拷贝,当数组内部的成员为引用类型时上面的方式还能算深拷贝吗? 1 var 2 arr = [{ m: 1 }, { n: 2 }], 3 deepArr = [].concat(arr); 4 console.log(arr === deepArr); // false5 console.log(arr[0] === deepArr[0]); //true 很明显数组地址发生变化

数组深拷贝的方法

最后都变了- 提交于 2020-03-28 05:46:07
方法一:for循环实现 var arr = [1,2,3,4,5] var arr2 = copyArr(arr) function copyArr(arr) { let res = [] for (let i = 0; i < arr.length; i++) { res.push(arr[i]) } return res }方法二:slice方法原理也比较好理解,他是将原数组中抽离部分出来形成一个新数组。我们只要设置为抽离全部,即可完成数组的深拷贝,如下 var arr = [1,2,3,4,5] var arr2 = arr.slice(0) arr[2] = 5 console.log(arr) console.log(arr2)方法三:concat方法原理更加粗暴。它是用于连接多个数组组成一个新的数组的方法。那么,我们只要连接它自己,即可完成数组的深拷贝。代码如下 var arr = [1,2,3,4,5] var arr2 = arr.concat() arr[2] = 5 console.log(arr) console.log(arr2) 方法四:ES6扩展运算符实现用下面的方法实现数组的深拷贝是最简单的 var arr = [1,2,3,4,5] var [ ...arr2 ] = arr arr[2] = 5 console.log(arr) console