arr

PHP数组处理总结

空扰寡人 提交于 2020-02-23 19:06:42
一、数组操作的基本函数 数组的键名和值 array_values($arr);获得数组的值 array_keys($arr);获得数组的键名 array_flip($arr);数组中的值与键名互换(如果有重复前面的会被后面的覆盖) in_array("apple",$arr);在数组中检索apple array_search("apple",$arr);在数组中检索apple ,如果存在返回键名 array_key_exists("apple",$arr);检索给定的键名是否存在数组中 isset($arr[apple]):检索给定的键名是否存在数组中 数组的内部指针 current($arr);返回数组中的当前单元 pos($arr);返回数组中的当前单元 key($arr);返回数组中当前单元的键名 prev($arr);将数组中的内部指针倒回一位 next($arr);将数组中的内部指针向前移动一位 end($arr);将数组中的内部指针指向最后一个单元 reset($arr;将数组中的内部指针指向第一个单元 each($arr);将返回数组当前元素的一个键名/值的构造数组,并使数组指针向前移动一位 list($key,$value)=each($arr);获得数组当前元素的键名和值 数组和变量之间的转换 extract($arr)

js视角的数据结构和算法(三)

倖福魔咒の 提交于 2020-02-23 18:22:36
js视角的数据结构和算法(三) 栈 队列 栈和队列的应用 树 二叉树 二叉树的实现 二叉搜索树/二叉查找树/二叉排序树 二叉树的遍历 栈 栈是逻辑结构中线性结构中的一种,遵循先入后出的原则。 最先入栈的元素称为栈底元素,最后入栈的元素称为栈顶元素。 栈属于逻辑结构,需要依托物理结构而存在。通过数组和链表,都可以实现一个栈。 栈基本操作是入栈和出栈,只从某一侧进行入或出,不论是链表实现还是数组实现,时间复杂度都是O(1)。 //入栈 var arr = [ 1 , 2 , 3 , 4 ] arr . push ( 5 ) //出栈 var arr = [ 1 , 2 , 3 , 4 ] arr . pop ( ) 队列 队列也是逻辑结构中线性结构中的一种,遵循先入先出的原则。 队列就像排队一样,有队头(出口)和队尾(入口)。 队列基本操作是入队和出队,只从某一侧进行入或出,不论是链表实现还是数组实现,时间复杂度都是O(1)。 //入队 var arr = [ 1 , 2 , 3 , 4 ] arr . push ( 5 ) //出队 var arr = [ 1 , 2 , 3 , 4 ] arr . shift ( ) 栈和队列的应用 先入后出的栈和先入先出的队列在特点上决定了它们的不同应用场景。 栈可用于历史数据的获取,是一种回溯,也能用于将递归操作转换成基于栈的非递归。

插入排序-Java

我与影子孤独终老i 提交于 2020-02-23 04:50:03
/** * @author cnkeysky */ public class DemoTest { public static void main ( String [ ] args ) { int [ ] arr = { - 1 , 9 , 1 , 4 , 3 , 10 , 7 , 0 } ; System . out . println ( "排序前:" ) ; printArr ( arr ) ; insertionSort ( arr ) ; System . out . println ( "排序后:" ) ; printArr ( arr ) ; } public static void insertionSort ( int [ ] arr ) { int len = arr . length ; for ( int i = 1 ; i < len ; ++ i ) { int aux = arr [ i ] ; int j = i ; // 方式1 与前 i 个值进行比较(从后向前比较) for ( ; j > 0 && aux < arr [ j - 1 ] ; -- j ) { arr [ j ] = arr [ j - 1 ] ; } // 方式2 /*for (; j > 0; --j) { if (aux < arr[j - 1]) { arr[j] =

JS 数组 学习笔记

不问归期 提交于 2020-02-22 17:59:22
什么是数组 数组(array)是按次序排列的一组值。每个值的位置都有编号(从0开始),整个数组用方括号表示。本质上数组属于一种特殊的,由 Array 构造出来的对象, typeof 运算符返回数组的类型是 object ,任何类型的数据都可以放入数组。 var arr = ['a', 'b', 'c'] typeof arr // 'object' var arr2 = [ {a: 1}, [1, 2, 3], function(){ return true; } ] arr2[0] // {a: 1} 数组的赋值和读取 var arr = [] // 赋值 arr[0] = 'a' arr[1] = 'b' arr[2] = 'c' // 读取数组中编号是 2 的值 arr[2] // c 多维数组 var a = [[1, 2], [3, 4]] a[0][0] // 1 a[1][1] // 4 数组的键名 由于数组成员的键名是固定的(默认总是0、1、2...),因此数组不用为每个元素指定键名,而对象的每个成员都必须指定键名。JavaScript 语言规定,对象的键名一律为字符串,所以, 数组的键名其实也是字符串 。之所以可以用数值读取,是因为非字符串的键名会被转为字符串。 var arr = ['a', 'b', 'c'] arr['0'] // 'a' arr[0] //

(JavaScript)基本对象

不问归期 提交于 2020-02-22 16:01:18
文章目录 一、 Function:函数(方法)对象 二、Array:数组对象 三、 Boolean 四、Date:日期对象 五、Math:数学对象 六、 RegExp 正则表达式对象 七、Global 一、 Function:函数(方法)对象 JavaScript function 语句:点击参考 创建: ( 1 ) var fun = new Function ( 形式参数列表 , 方法体 ) ; //不常见,见过即可 ( 2 )function 方法名称 ( 形式参数列表 ) { 方法体 } ( 3 )var 方法名 = function ( 形式参数列表 ) { 方法体 } 方法: 属性:length 代表形参的个数 特点: (1)方法定义时形参的类型不用写,返回值类型也不写。(因为都是 var,不写也可以) (2)方法是一个对象,如果定义名称相同的方法,会覆盖 (3) 在JS中,方法的调用只与方法的名称有关,和参数列表无关 (4)在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有的实际参数 调用:方法名称(实际参数列表); 二、Array:数组对象 JavaScript Array(数组) 对象:点击参考 创建: ( 1 )var arr = new Array ( 元素列表 ) ; ( 2 )var arr = new Array ( 默认长度 ) ;

前端面试题(亲身面试经验)

南楼画角 提交于 2020-02-22 14:43:55
  最近面试了一些公司,趁着疫情期间,总结一波。大家可以看看 会有用的。 webpack 1、webpack中entry和output的作用 webpack中的entry标记入口文件,它可以是一个字符串(单入口)或者一个数组(多入口),output用来标记输出,主要有两个属性 path和 filename。其次就是publicPath 和chunkFileName 2、webpack中loader和plugin的作用 loader 用于加载某些资源文件。 因为webpack 本身只能打包commonjs规范的js文件,对于其他资源例如 css,图片,或者其他的语法集,比如 jsx, coffee,是没有办法加载的。 这就需要对应的loader将资源转化,加载进来。loader是用于加载的,它作用于一个个文件上。 plugin 用于扩展webpack的功能。它直接作用于 webpack,扩展了它的功能。当然loader也是变相的扩展了 webpack ,但是它只专注于转化文件。而plugin的功能更加的丰富,而不仅局限于资源的加载。 3、webpack中可以有哪些优化 1、优化Loader的文件搜索范围,指定include、exclude 2、把Babel编译过的文件缓存起来 loader: 'babel-loader?cacheDirectory=ture' 3、懒加载、按需加载

StringBuilder

不羁的心 提交于 2020-02-22 12:13:56
StringBuilder定义和作用 StringBuilder的作用:节省字符串拼接所制造的内存和占用的时间 每一次字符串拼接堆区中的常量区都会开辟一块新的地址和内存 StringBuilder是一个可变的字符串类,我们可以把它看作是一个容器,这里的可变指的是StringBuiler对象中的内容是可变的,它在进行拼接的时候是不会创建一个新的对象的。而String中的内容是不可变的。 StringBuilder的构造方法 public StringBuilder() 无参构造方法,可创建空白字符串对象 public StringBuilder(String str) 带参构造方法,根据字符串内容,创建可变字符串对象 StringBuilder stb = new StringBuilder() 这个是创建对象的格式(创建对象的统一格式) StringBuilder的添加和反转方法 通过append方法进行添加 StringBuilder stb = new StringBuilder(); sbb.append("sapere"); sbb.append("Aude"); //输出这个字符串的结果为 spaere Aude //如果采用链式编程: sbb.append("sapere"). sbb.append.("Aude") //输出结果一样 /

PHP基础2

喜欢而已 提交于 2020-02-22 05:48:58
正则表达式: 定界符:/开头/结尾 ^匹配开头  $匹配结尾  *前面的表达式可以出现n次可以为0 +前面的表达式至少出现一次  ?前面的表达式可出现1或0次 {n}匹配n次  {n,}最少匹配n次 最多不限 {n,m}最少匹配n次,做多m次  x|y匹配x或y次 [xyz]匹配其中任何一个 [a-z]匹配a-z之间任何一个 \d任意一个数字  \D任意一个非数字 \s任何不可见字符  \S匹配任何可见字符 \v制表符  \w包括下划线的任意单词字符 preg_replace寻找替换  preg_split将字符串分割 preg_match匹配第一个  preg_match_all匹配所有 数组: 定义数组:$arr=array(1,2,3,4,5) 强类型语言数组特征:1.只能存储相同类型的数据           2.数组的长度固定           3.在内存里面是连续的 取值echo $arr[0] 默认从0开始 关联数组:$arr1=array(“one”=>"111","two"=>"222") 非常规定义方式: $arr2["one"]="aaa"(赋值定义) 删除数组元素 unset($arr[2]) 添加数组元素$arr[2]=10  追加元素$arr[]=10) 遍历数组: 1.for循环遍历(只能遍历索引数组) for($a=0;$a<count($arr)

069-PHP数组下标

霸气de小男生 提交于 2020-02-21 23:45:54
<?php $arr=array(98,'hello',67,'A',85,NULL); //定义一个数组 $x=0; //定义三个作为下标的变量 $y=3; $z=5; echo "下标为{$x}的元素为{$arr[$x]}。<br />"; //输出对应下标及元素值 echo "下标为{$y}的元素为{$arr[$y]}。<br />"; echo "下标为{$z}的元素为{$arr[$z]}。<br />"; $x=2; //为变量x重新赋值 echo "下标为{$x}的元素为{$arr[$x]}。"; //输出对应下标及元素值 ?> 来源: https://www.cnblogs.com/tianpan2019/p/10995335.html

ES6 Set对象

岁酱吖の 提交于 2020-02-21 08:11:09
Set对象 set对象: 接收一个数组进行操作 { // 构造函数 用来构建某一类型的对象 - 对象的实例化 let arr = [2,1,2,2,3,4,3,4,5]; let s = new Set(arr);//可以传数组或者类数组 console.log(s);//这里也就是 数组的值: {1, 2, 3, 4, 5} // 所以快速去重一个数组可以使用Set()对象: arr = [...s]; console.log(arr); /* 1.传进去的数组 自动进行去重: 第一个出现的值优先保留下来 */ } set属性和方法 { let arr = [2,1,2,2,3,4,3,4,5]; let s = new Set(arr); console.log(s.size);//去重之后的保留的个数 : 5; 和length;类似 // s.clear();//清空所有值 -> 返回值:undefined... console.log(s); s.delete(4);//删除具体的值 -> 返回值:布尔值 console.log(s); s.add("111");//添加某一项,当然自动有去重效果的! -> 返回值:set对象本身,所以这个属性可以连续使用->s.add(1).add(2).add(3);链式操作 console.log(s); console.log(s