草庐IT

Array-Merge

全部标签

javascript - Array.fill(Array) 通过引用而不是值创建副本

这个问题在这里已经有了答案:Array.prototype.fill()withobjectpassesreferenceandnotnewinstance(7个答案)UnexpectedbehaviorusingArrayMaponanArrayInitializedwithArrayFill[duplicate](1个回答)关闭6年前。我正在尝试使用Array.fill创建一个6x12矩阵letm=Array(6).fill(Array(12).fill(0));虽然这行得通,但问题是内部数组实际上都在引用同一个Array对象。letm=Array(6).fill(Array(12

javascript - React - 改变 this.state onClick 用 array.map() 呈现

我是React和JavaScript的新手。我有一个Menu组件,它呈现一个动画onClick,然后将应用程序重定向到另一个路径,/coffee。我想将单击(选择)的值传递给函数this.gotoCoffee并更新this.state.select,但我不知道如何,因为我在同一onClick事件中映射this.state.coffees中的所有项目。我如何做到这一点并将this.state.select更新为点击值?我的代码:classMenusextendsComponent{constructor(props){super(props);this.state={coffees:[]

javascript - 如果数组是稀疏的,为什么 array.indexOf(undefined) 不起作用

我是JavaScript的新手,有一件事困扰着我。我有一个非常简单的代码:vara=[];a[1]=1;i=typeof(a[0]);index=a.indexOf(undefined);len=a.length;console.log(a);console.log("\n"+len);console.log("\n"+i);console.log("\n"+index);我的问题是:为什么indexOf返回-1,而不是0。我知道这个方法通过===进行比较,但我使用关键字undefined作为参数。如果我将方法参数更改为“未定义”,它也不起作用(但这对我来说很明显)。有人可以向我解释一

javascript - 如何在返回单个对象时递归使用 Array.prototype.find()?

我试图解决的更大问题是,鉴于此数据:vardata=[{id:1},{id:2},{id:3},{id:4,children:[{id:6},{id:7,children:[{id:8},{id:9}]}]},{id:5}]我想创建一个返回{id:id}的函数findById(data,id)。例如,findById(data,8)应该返回{id:8},而findById(data,4)应该返回{id:4,children:[...]}.为了实现这一点,我递归地使用了Array.prototype.find,但是当return将对象混合在一起时遇到了麻烦。我的实现返回特定对象的路径。例

javascript - array.length 与 array.length > 0

检查数组的长度是否为真值与检查它是否>0之间有什么区别吗?换句话说,是否有任何理由使用这些语句中的一个来代替另一个:vararr=[1,2,3];if(arr.length){}if(arr.length>0){} 最佳答案 Isthereanydifferencebetweencheckinganarray'slengthasatruthyvaluevscheckingthatit's>0?由于arr.length的值(value)只能是0或更大,因为0是计算结果为false的唯一数字,没有区别。一般来说,Boolean(n)和B

javascript - 如何在 Array.prototype 和 Object.prototype 的 javascript 中定义方法,使其不会出现在 for in 循环中

我想在Array.prototype和Object.prototype上定义辅助方法。我目前的计划是做类似的事情:Array.prototype.find=function(testFun){//codetofindelementinarray};这样我就可以做到:vararr=[1,2,3];varfound=arr.find(function(el){returnel>2;});它工作正常,但如果我在forin循环中遍历数组,方法将显示为值:for(varpropinarr){console.log(prop);}//printsout://1//2//3//find这会搞砸任何其

C# MVC 4 : Passing JavaScript array in View to Controller

在MVC4中,如何使用AJAX将View中的JavaScript数组传递给Controller​​中的函数?这似乎行不通:$.ajax({type:"POST",url:"../Home/SaveTable",data:{function_param:countryArray}});问题是,countryArray是JavaScriptView中的一个全局数组,我在传递之前检查它是否包含元素。但是,当saveTable函数接收到数组时,该函数表示它接收到一个空字符串[]数组。我只知道将数组从Controller传递到View,使用returnJson(data,JsonRequestB

javascript - Angular 错误 : [filter:notarray] Expected array but received: {} with a filter on an ng-repeat

我正在尝试使用ng-repeat指令使用对API的Angular请求来填充html表。首先加载html页面,然后请求获取返回响应时填充表格的数据。当我向ng-repeat指令添加过滤器时,表格被填充并且过滤器起作用,但是在我的chrome浏览器控制台中,我收到以下错误:Error:[filter:notarray]Expectedarraybutreceived:{}http://errors.angularjs.org/1.4.3/filter/notarray?p0=%7B%7DatREGEX_STRING_REGEXP(angular.js:68)atangular.js:182

javascript - 将构造函数传递给 Array.map?

我怎样才能做这样的事情:vara=[1,2,3,4];a.map(Date.constructor);此代码在GoogleV8上抛出错误:SyntaxError:Unexpectednumber我也试过:a.map(Date.constructor,Date.prototype)同样的结果。 最佳答案 我认为OP正在寻找的内容与此非常相似:varnums=[1,2,3];varstrs=nums.map(String);//=>['1','2','3'];//arrayofstrings我认为原因是这真的很优雅,无论是在像上面这样的

javascript - Array 构造函数的合法使用

我喜欢这个问题-LegitimateusesoftheFunctionconstructor-所以我想提出一个关于Array构造函数的类似问题。当然,数组字面量表示法才是创建数组的正确方法。这意味着不应使用newArray表示法。和“结案”。但是,newArray形式有一个特殊性。如果传入自然数,则会创建一个空数组,并将其length属性设置为该数字。所以arr=newArray(7);相当于arr=[];arr.length=7;这可以被认为是一个特性。我想知道这个“功能”是否有实际用途。我最近偶然发现了这样一种(简单的)用法:newArray(n+1).join('*')//ret