数组

父组件动态生成,子组件值进行渲染

删除回忆录丶 提交于 2020-04-07 11:55:21
项目地址: https://github.com/zhaobao1830/ylvisible AppMain.vue 需求:外边框(dv-border-box-3)动态生成,里面的图形正确渲染 this.$refs.drag_draggable 是数组 问题:单个图形没问题,多个图形渲染的时候,vue会将最新生成的component放在数组末尾,保存图形渲染的数据也是数组(渲染的时候会从数组中获取到当前操作的数据),这样会遇到数据和component不匹配,渲染的时候会出现其他的图形 解决思路: 1、每次操作的时候,把当前操作的数据移动到数组末尾。 问题:移动难度大,修改频繁 放弃 2、边框外层的组件是固定的,通过$children定位到渲染的组件,调用相应的方法(我现在是用的这个方法) this.$refs.drag_draggable[i].$children[0].$children[0].renderHtml(i) 来源: https://www.cnblogs.com/zhaobao1830/p/12652247.html

谈谈神秘的ES6——(五)解构赋值【对象篇】

China☆狼群 提交于 2020-04-07 11:29:26
上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" }; foo // "aaa" bar // "bbb" 对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。 let { bar, foo } = { foo: "aaa", bar: "bbb" }; foo // "aaa" bar // "bbb" let { baz } = { foo: "aaa", bar: "bbb" }; baz // undefined 上面代码的第一个例子,等号左边的两个变量的次序,与等号右边两个同名属性的次序不一致,但是对取值完全没有影响。第二个例子的变量没有对应的同名属性,导致取不到值,最后等于undefined。 如果变量名与属性名不一致,必须写成下面这样。 let { foo: baz } = { foo: 'aaa', bar: 'bbb' }; baz // "aaa" let obj = { first: 'hello', last: 'world' }; let { first: f, last: l } = obj; f

谈谈神秘的ES6——(四)解构赋值【数组篇】

柔情痞子 提交于 2020-04-07 10:56:33
今天,我们来讲一个新的概念,叫做解构赋值。那么在ES6中,什么是解构赋值呢?我们先来给它下个定义。 在ES6中,允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。满足解构赋值的前提是:1.等号两边结构一样;2.声明和赋值不能分开;3.右边是具体的“东西”。 在ES5的时候,我们想要对a,b,c三个变量赋值,一般来说都是var三个变量,写三行赋值。有了解构,它可以变成这个样子: let [a,b,c] = [1,2,3] console.log(a);//1 console.log(b);//2 console.log(c);//3 当然,以下的写法也是允许的: let [[arr],str] = [["arr"],"str"]; let [ , , third] = ["foo", "bar", "baz"]; console.log(third) // "baz" let [x, , y] = [1, 2, 3]; console.log(x) // 1 console.log(y) // 3 let [head, ...tail] = [1, 2, 3, 4]; console.log(head) // 1 console.log(tail) // [2, 3, 4] 本质上,这种写法属于“模式匹配”,只要等号两边的模式相同

numpy 索引

会有一股神秘感。 提交于 2020-04-07 09:51:48
一、花式索引 numpy提供了比常规的python序列更多的索引工具。正如我们前面看到的,除了按整数和切片索引之外,还可以使用数组进行索引 >>> a = np.arange(12)**2 array([ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121], dtype=int32) >>> i = np.array( [ 1,1,3,8,5 ] ) #一个包含索引数据的数组 >>> a[i] array([ 1, 1, 9, 64, 25]) >>> >>> j = np.array( [ [ 3, 4], [ 9, 7 ] ] ) #一个二维索引数组 >>> a[j] # 最终结果和j的形状保持一致 array([[ 9, 16], [81, 49]]) 当被索引的数组是多维数组时,将按照它的第一轴进行索引的,比如下面的例子: >>> palette = np.array( [ [0,0,0], ... [255,0,0], ... [0,255,0], ... [0,0,255], ... [255,255,255] ] ) >>> image = np.array( [ [ 0, 1, 2, 0 ], ... [ 0, 3, 4, 0 ] ] ) >>> palette[image] array([[[ 0, 0, 0], [255,

JavaScript push() 方法

☆樱花仙子☆ 提交于 2020-04-07 07:50:04
JavaScript Array 对象 定义和用法 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。 语法 arrayObject.push(newelement1,newelement2,....,newelementX) 参数 描述 newelement1 必需。要添加到数组的第一个元素。 newelement2 可选。要添加到数组的第二个元素。 newelementX 可选。可添加多个元素。 返回值 把指定的值添加到数组后的新长度。 说明 push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。 提示和注释 注释:该方法会改变数组的长度。 提示:要想数组的开头添加一个或多个元素,请使用 unshift() 方法。 实例 在本例中,我们将创建一个数组,并通过添加一个元素来改变其长度: <script type="text/javascript"> var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr + "<br />") document.write(arr.push(

JavaScript push() 方法

梦想与她 提交于 2020-04-07 07:48:45
JavaScript Array 对象参考手册 定义和用法 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。 语法 arrayObject.push(newelement1,newelement2,....,newelementX) 参数 描述 newelement1 必需。要添加到数组的第一个元素。 newelement2 可选。要添加到数组的第二个元素。 newelementX 可选。可添加多个元素。 返回值 把指定的值添加到数组后的新长度。 说明 push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。 提示和注释 注释:该方法会改变数组的长度。 提示:要想数组的开头添加一个或多个元素,请使用 unshift() 方法。 实例 在本例中,我们将创建一个数组,并通过添加一个元素来改变其长度: <script type="text/javascript"> var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr + "<br />") document.write(arr.push(

数组工具类Arrays

让人想犯罪 __ 提交于 2020-04-07 04:38:11
提供大量静态方法,实现 数组 的常见操作。 1、public static String toString(数组):将参数数组数组字符串。 使用方法:Arrays.toString(数组); 2、public static String sort(数组):按升序将参数数组进行排列。 使用方法:Arrays.sort(数组); 练习:将一个随机字符串的所有字符升序排列,并倒序打印。 1 import java.util.Arrays; 2 3 /* 4 将一个随机字符串的所有字符升序排列,并倒序打印 5 */ 6 public class Demo02ArraysTest { 7 public static void main(String[] args) { 8 //随机字符串 9 String str = "lkajsdlnLAKJJFLA238797"; 10 //将字符串转换为字符数组 11 char[] chars = str.toCharArray(); 12 13 //升序排列 14 Arrays.sort(chars); 15 16 //倒序打印 17 for (int I = chars.length - 1; I >= 0; I--) { 18 System.out.print(chars[I]); // snllkjdaLLKJJFAA987732 19 }

面试题集锦_2

最后都变了- 提交于 2020-04-07 02:35:39
整型数组int A[nSize],其中隐藏着若干个0,其余非0整数,写一个函数int Func(int *S,int size), 使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)。 1 #include<stdio.h> 2 #include<stdlib.h> 3 int Func(int a[],int size) 4 { 5 int temp;//用于交换数组的临时变量 6 int count1=0,count2=0;//用于统计0的个数 7 int first,first2;//用于记录元素0第一次出现的位置 8 int len=0,fu_first;//len用于遍历数组的变量,fu_first用于记录排序后第一个负数出现的位置 9 for(int i=0;i<size;i++) 10 { 11 { 12 if(a[i]==0) 13 { 14 count1++; 15 if(count1==1) 16 first=i; 17 }//判断第一个是否为0 18 for(int j=i+1;j<size;j++) 19 if(a[i]<a[j]) 20 { 21 if(a[j]==0) 22 { 23 count1++; 24 if(count1==1) 25

数组的sort方法原理

余生颓废 提交于 2020-04-07 01:42:47
数组中有两种可以排序的方法,reverse()和sort(),reverse()方法会反转数组项的顺序 let arr1 = [1,2,3,4,5] arr1.reverse() console.log(arr1) //[ 5, 4, 3, 2, 1 ] let arr2 = [1,2,6,4,5] arr2.reverse() console.log(arr2) //[ 5, 4, 6, 2, 1 ] 可以看到reverse()方法只会对数组进行反转,并没有真正的排序,因此有了 sort() 方法 sort()方法的原理是调用数组项的toString()方法,得到数组项的字符串,然后再比较字符串的Unicode码的顺序进行排序,即使数组中的每一项都是数值,比较的也是字符串的顺序。看下面的例子: let arr3 = [0, 1, 5, 10, 15] arr3.sort() console.log(arr3) //[ 0, 1, 10, 15, 5 ] 如上所见,虽然5小于10,但是在排序的时候还是排在了最后,这是因为排序的时候比较的是字符串,很显然这种排序方式不是我们想要的,因此sort方法可以接收一个比较函数作为参数,这样我们就可以自己指定哪个值位于前面哪个值排在后面。 一、升序排列 若 val1小于 val2,即 val1 - val2 小于零,则返回一个小于零的值

稀疏数组

守給你的承諾、 提交于 2020-04-07 00:01:01
稀疏数组 介绍 当我们在处理如五子棋这类棋盘问题时,只有棋盘中的黑子和白字位置对于我们来说是由具体意义的,当一个二维数组中的绝大多数值都是某一个值时,我们选定位默认值,我们可以使用稀疏数组来保存,以达到节约空间的目的 处理过程 创建一个n+1行3列的二维数组(n为待压缩数组中不同于选定默认值的个数) 在第一行分别保存待压缩数组的行数、列数、n 对每一个不同于默认值的值按照行号、列号、值记录一行 把一个二维数组压缩为稀疏数组 public class SparseArray { public int[][] array2SparseArray(int[][] res){ int n=0; for(int i=0;i<res.length;i++) { for(int j=0;j<res[i].length;j++) { if(res[i][j]!=0) { n++; } } } int[][] tar=new int[n+1][3]; tar[0][0]=res.length; tar[0][1]=res[0].length; tar[0][2]=n; int row=1; for(int i=0;i<res.length;i++) { for(int j=0;j<res[i].length;j++) { if(res[i][j]!=0) { tar[row][0]=i; tar