ing 发表于 2020-6-25 09:32

不知道 Vue 从哪取得的数据,没有循环和递归语句却可以生成指定个数的数据

本帖最后由 ing 于 2020-6-25 12:02 编辑

map那里的参数 ''_'' 的作用?(二楼)
右边的矩阵是遍历data数据渲染出的,但data的数据从哪来的?(结帖)


我以为是地址值取余得到的,但创建的实际是一个指定长度的undefined值的数组

https://codesandbox.io/s/github/vuejs/vuejs.org/tree/master/src/v2/examples/vue-20-list-move-transitions?file=/index.html



______________________________________________________结帖______________________________________________________
遍历功能的实现:
new Array(num) 创建的是一个长度num,但没有被初始化的定长数组。
Array.apply(null, { length: 2 })创建的是一个已经初始化的定长数组(长度为2),每个元素赋值为undefined的数组。
map() 方法创建一个新数组,其结果是该数组中的每个元素调用一次提供的函数后的返回值。


https://www.imooc.com/article/302942


赋值部分
map(function(_, index){...})
其实数据来源就是参数index,index 表示数组的下标0~80

longzhouming 发表于 2020-6-25 09:48

本帖最后由 longzhouming 于 2020-6-25 09:49 编辑

比如有个函数 一定要传2个参数 但是你其实只会用到第二个参数 第一个参数你的程序里根本不会用到
但是不传第一个参数就没法传第二个参数 这时候很多人习惯性的写个_ 作为一个不会用到的变量的变量名
这里的_你可以改成你能理解的value或者currentValue 其实也是一样的

E式丶男孩 发表于 2020-6-25 09:52

下面不是写的很清楚吗,1到81,除以9取余,你一刷新就知道了

Huashusu 发表于 2020-6-25 10:10

用下划线接受的值,一般是语义上的忽略,JavaScript里的map方法会返回一个数组,长度就是那个81,map里的function会接受两个参数,第一个是值,但是前面指定了null,没东西,后面的index是索引,就是前面的length:81那个,也就是数组长度,然后html的for循环出来的是(index % 9) + 1,就是索引取余+1,把(index % 9) + 1改成index就理解了

kof21411 发表于 2020-6-25 10:20

楼上的都说得好清楚了,我再补充一点是楼主你在map函数return之前就就打印cells不对的,因为定义都还没完成就要打印当然是undefined
页: [1]
查看完整版本: 不知道 Vue 从哪取得的数据,没有循环和递归语句却可以生成指定个数的数据