草庐IT

php数组递归

全部标签

javascript - 如何在 javascript 中递归使用 reduce() 方法?

这个问题在这里已经有了答案:Merge/flattenanarrayofarrays(83个回答)关闭7年前。题目是使用reduce()对数组的数组进行操作,返回一个没有子数组的齐次数组。例如-[1,2,[3,[4,5]]]将返回[1,2,3,4,5]。这是有效的代码,考虑到子数组本身不是数组的另一个数组-vara=[3,[4,[5,[6,7]]]];varb=8;varc=[9,10];varx=[]vararr=[1,2,a,b,c];arr=[1,2,3,4,c];console.log(arr.reduce(functiononeArray(a,b){returna.conca

javascript - 在javascript中将数组转换为嵌套对象

我有典型的组织层次结构。例如。D,EisreportingtoB.B,CisreportingtoA.A是最顶层的Node。但我收到的数据是一个平面数组,带有一个指向父级的属性。[{name:"A",parent:null},{name:"B",parent:"A"},{name:"C",parent:"A"},{name:"D",parent:"B"},{name:"E",parent:"B"}]但我想将其转换为单个嵌套对象或树。根Node具有嵌入子Node的子Node属性,每个子Node都有自己的子Node属性,如下所示。{name:"A",children:[{name:"C"c

javascript - 使用 lodash 从与正则表达式匹配的数组中获取值

我的json数组:[{"id":"7","name":"hello"},{"id":"7","name":"shan"},{"id":"7","name":"john"}{"id":"7","name":"hello"}]我想获得一个新数组,该数组与name上以字母开头的正则表达式相匹配。我正在使用regexp但我不知道如何实现它。这是我的代码:varnewitem=_.filter(result,item=>item.name='hello');console.log(newitem);但它只返回与name的严格匹配。请帮我修改上面的内容,这样结果就是一个描述的新数组。预期输出当用户

javascript - 如何在reactjs中读取数组的信息?

我想循环一个数组并从中创建列表项。在控制台中,它显示错误被抛出,因为我的数组没有键,只有值。那么读出数组的正确操作是什么?*//this.props.items=["cars","streets","houses"];*Wrong.Youcan'tupdatepropsvarTodoList=React.createClass({render:function(){varcreateItem=function(item){return{item};};return{this.props.items.map(createItem)};}}); 最佳答案

Javascript 不读取以 0 开头的数组项

我想给遗传算法一个机会,但我似乎找不到解决这个问题的方法。这是我的代码:varencodings={0000:0,0001:1,0010:2,0011:3,0100:4,0101:5,0110:6,0111:7,1000:8,1001:9,1010:"+",1011:"-",1100:"*",1101:"/"};varchromosome="";for(vari=0;i");for(varo=0;o如果运行代码,您会看到输出中有很多未定义的内容。什么会导致这种情况?谢谢! 最佳答案 您应该将对象的键转换成字符串应该是:varenco

javascript - 在数组中查找重复数组

给定一组数组,识别重复项的有效方法是什么?vararray=[[11.31866455078125,44.53836644772605],[//我一直在用lodash研究这个作为接受的依赖项,我知道如何使用_.uniqWith返回“唯一”列表和_.isEqual:_.uniqWith(array,_.isEqual)With会给出列表的“唯一”版本:[[11.31866455078125,44.53836644772605],[11.371536254882812,44.53836644772605],[11.371536254882812,44.50140292110874]]但我不

javascript - 递归调用异步函数

我有一个异步函数,我想连续多次调用它。问题是“多”可以是几十万,也可以是几百万……显而易见的方法是从回调中调用相同的函数:functionfoo(){asyncBar(foo);}当然涉及一些逻辑来停止递归。问题是堆栈是否充满了调用并可能在某个时候导致堆栈溢出? 最佳答案 Thequestioniswhetherthestackisfillingwithcallsandmaycausestackoverflowatsomepoint?否。如果asyncBar()调用异步传递的回调,则没有堆栈堆积。在您的代码中:functionfoo

javascript - 在 Javascript 中连接一个空数组

我正在浏览一些代码,我想知道这有什么用grid.push([].concat(row));我的理解是一样的grid.push([row]);为什么要大惊小怪? 最佳答案 当您需要展平数组并且没有由其他数组组成的数组时,您想使用.concat。例如vara=[1,2,3];varb=[4];场景一console.log(b.push(a));//Result:[4,[1,2,3]]场景二console.log(b.concat(a));//Result:[4,1,2,3]所以你的两个场景都在一个数组中。由于[].concat()只产生

javascript - 如何从 Javascript 或 Jquery 中的数组中选择随机值?

这个问题在这里已经有了答案:Howtogetuniquerandomitemsfromanarray?(1个回答)关闭6年前。我正在尝试显示数组中的3个随机值。以下脚本仅从javaScript数组返回单个项目。vararrayNum=['One','two','three','four','five','six','seven','eight','nine'];varsingleRandom=arrayNum[Math.floor(Math.random()*arrayNum.length)];alert(singleRandom);但我想显示数组arrayNum中的三个随机值,任何人

javascript - RxJS Observable 返回数组,每次数组迭代运行另一个函数

我有一个函数getNews(),它基本上返回angular的http.get请求。请求的结果是Id的数组。我想遍历我得到的这个数组并运行另一个http.get请求(函数getItem(id)),然后它将返回从服务器接收的单个Id的对象。我试过这样使用它:getLatest(){returnthis.http.get('all_news_url').map(res=>res.json())//IeventriedcreatingObservablefromarrayandgetonly5elements//.map(res=>Observable.from(res.json()))//.