Array.apply(null,{length:6}).map()

map定义和方法 
map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理的后值。 
map()方法按照原始数组元素顺序依次处理元素。 
注意: 
map不会对空数组进行检测 
map不会改变原始数组 
arr.map(function(currentValue,index,arr),thisValue) 
参数说明 
function(currentValue,index,arr) 
必须,函数,数组中的每个元素都会执行这个函数函数参数 
函数参数 
currentValue 必须 当前元素值 
index 可选 当前元素的索引值 
arr 可选 当前元素属于的数组对象。

Array.apply(null, { length: 5 }) 和 Array(5)有什么不同

注意:ES5,apply函数的第二个参数除了可以是数组外,还可以是类数组对象

// 类转成真正的数组
var a = Array.prototype.slice.call({length: 2});
Array.apply(null, { length: 5 })
// 结果 [undefined, undefined, undefined, undefined, undefined]

Array(5)
//结果 [empty × 5] => [,,,,]

为什么要这么写

map函数并不会遍历数组中没有初始化或者被delete的元素(有相同限制还有forEach, reduce方法)。
Array.apply(null, { length: 5 }) 是用来初始化一个长度为5,每项的初始值都是undefined的数组

    render (createElement) {
      return createElement(‘div‘,
        Array.apply(null, { length: 20 }).map(function () {
          return createElement(‘p‘, ‘hi‘)
        })
      )
    }

---------------------
原文:

https://blog.csdn.net/weixin_40475396/article/details/79186238

https://www.cnblogs.com/yangwang12345/p/7729194.html

原文地址:https://www.cnblogs.com/wanlibingfeng/p/10057660.html

时间: 2024-11-11 03:20:05

Array.apply(null,{length:6}).map()的相关文章

Array.apply(null,{length:20})与new Array(20)的区别

Array.apply(null,{length:20}) 这句代码的实际意义:创建长度为20的一个数组,但并非空数组. 跟new Array(20)的区别在于,前一种创建方式,得到的数组中的每一个元素进行了初始化,将20个元素赋值为undefined,后一种创建方式,创建了一个空数组,里面的元素没有进行初始化.

Array.apply(arr,Array())

这是自己没事写代码时发现的 下面是整段代码 var result = Array.apply(this, Array(5)).map((item, i) => { return 0; }) 这段代码生成了一个result = [0,0,0,0,0]的数组 为什么不用 result = new Array(5)呢? 因为这样的result 是empty*5,而且这时候如果调用map方法得到的仍旧是empty*5,就不能用map遍历 result = Array.apply(this, Array(

js Array 创建具有自定义初始值的数组

在原生js中,创建数组的常见方式有两种:Array() 或 new Array() 和 [] 方式. 构造函数创建数组和字面量定义数组的差异不谈, 当我们需要给创建数组赋初始值时,如果量少的话,可以直接通过 let arr = [2,4] 的方式创建; 而当量大而重复的时候,可以通过以下的方式创建: Array.apply(null,{length:20}).map(()=>2) //(20) [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

JavaScript算法相关

1. 不使用循环,创建一个长度为100的数组,并且每个元素的值等于它的下标? Array.apply(null, {length: N}).map(Function.call, Number); Array.apply(0,Array(100)).map(function(item,index){return index}) https://segmentfault.com/q/1010000004872068/a-1020000004873461 2. Javascript 求100以内的质数

Vue学习笔记进阶篇——Render函数

本文为转载,原文:Vue学习笔记进阶篇--Render函数 基础 Vue 推荐在绝大多数情况下使用 template 来创建你的 HTML.然而在一些场景中,你真的需要 JavaScript 的完全编程的能力,这就是 render 函数,它比 template 更接近编译器. <h1> <a name="hello-world" href="#hello-world"> Hello world! </a> </h1>

Vue列表过渡

前面的话 本文将详细介绍Vue列表过渡 概述 前面分别介绍了单元素CSS过渡和JS过渡,以及多元素过渡.如何同时渲染整个列表呢?在这种情景中,需要使用<transition-group>组件 [<transition-group>] <transition-group>不同于 <transition>, 它会以一个真实元素呈现:默认为一个 <span>.也可以通过 tag 特性更换为其他元素.而且其内部元素总是需要提供唯一的 key 属性值 &l

Vue过渡状态

前面的话 Vue 的过渡系统提供了非常多简单的方法设置进入.离开和列表的动效.那么对于数据元素本身的动效呢?包括数字和运算.颜色的显示.SVG 节点的位置.元素的大小和其他的属性等.所有的原始数字都被事先存储起来,可以直接转换到数字.做到这一步,我们就可以结合 Vue 的响应式和组件系统,使用第三方库来实现切换元素的过渡状态 状态动画 通过watcher,能监听到任何数值属性的数值更新 <div id="animated-number-demo"> <input v-

VUE实例 -- 洗牌

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>VUE实例洗牌</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.14.1/lodash.min.js"></script&g

不使用循环,如何创建一个长度为100的数组

前言: 问题描述:在不使用循环的条件下,如何创建一个长度为100的数组,并且数组的每一个元素是该元素的下标? 这是一个比较经典的前端面试题,也可以当笔试题,咋一看,好像难度不大,实际上考察的知识点还不少,值得写篇文章来备忘!废话不多说,直接进入正文! 正文: 为了理解这道题的意思,我们先用传统的方法来实现一下: 使用for方法: var arr = new Array(100); for(var i=0;i<arr.length;i++){ arr[i] = i; } console.log(a