草庐IT

text_array

全部标签

javascript - 在 Javascript 中对具有单个元素的数组调用 Array.reduce

在空数组上调用reduce会抛出TypeError,这是完全可以理解的,有助于捕获错误。但是当我在一个内部只有一个项目的数组上调用它时,这种行为让我感到困惑:vararr=["a"];arr.reduce(function(a,b){return[a,b]});//returns"a"我知道reduce不适用于这样的数组,但我发现只返回元素而不调用回调或抛出错误至少很奇怪。此外,MDN文档指出回调是“对数组中的每个值执行的函数,采用四个参数:”。有人可以解释这种行为背后的原因吗? 最佳答案 回调应该是一个“二元函数”(即接受两个参数

JavaScript - 检查数组中的所有值是否都不是 Null - Array/Each/

使用JavaScript/JQuery开发TicTacToe。初级程序员,但无法在网上找到它。目前我有一个名为“game_board”的普通数组。该数组有9个值,它们是0-8。它不是“哈希”。我正在研究一个循环或类似的循环或类似的检查数组中的所有值是否不为空。如果“game_board”数组中的所有值都不是Null,则代码应执行[Alert("Draw")]等操作。如果数组中的任何值具有值,则该函数不应执行任何操作。这是我的代码尝试。任何想法都会很棒。我的尝试是如果循环找到空值就会中断的理论。如果它没有找到空值,它会转到ELSE并报告“平局”//checkdrawfor(varp=0;

javascript - sublime text 新行丢失缩进

我有一个问题导致我在sublimetext中有很多额外的击键。当我创建几行时,缩进是正确的。但是,如果我向上箭头回到那些新行,缩进就消失了,我回到了位置0(所有文件格式都会发生)。我做错了吗,这是预期的行为吗?我喜欢我的代码中有空格,所以这很痛苦。重新创建:编写功能代码例如functionBob(){|indentstartshere}一切顺利。然后我添加了几行,向上箭头回到中间,我得到了这个:functionBob(){|indentstartshere|indentstartshere|indentstartshere}我愿意:functionBob(){|indentstarts

javascript - 如何在 Javascript 中的 array.forEach 中等待异步函数

我正在尝试在foreach中发出一个async请求以获取数据以便稍后用户使用它,但它对我不起作用。我知道Array.Foreach是一个同步函数,所以我什至尝试了$.when.done但它仍然不会等到它完成。如果它是单个值但它是一个数组,我本可以使用回调。有没有更好的方法通过回调来处理这个问题,以实现在下一步移动之前等待async请求?browseItems.forEach((browseItem:any)=>{AsynchFunction();cosole.log("Step2")}functionAsynchFunction(){console.log("Step1")}我正在尝试

javascript - JS (ES6) : Filter array based on nested array attributes

我有一个数组,看起来像这样:constpersons=[{name:"Joe",animals:[{species:"dog",name:"Bolt"},{species:"cat",name:"Billy"},]},{name:"Bob",animals:[{species:"dog",name:"Snoopy"}]}];现在我想根据物种进行过滤。例如:每个养猫的人,都应该返回:constresult=[{name:"Joe",animals:[{species:"dog",name:"Bolt"},{species:"cat",name:"Billy"},]}];我试过这样的fil

javascript - D3 分组条形图 : How to rotate the text of x axis ticks?

我使用的是分组条形图(http://bl.ocks.org/mbostock/3887051),但是x轴的文字很长,如附图所示。如何旋转文字?谢谢你。 最佳答案 可以找到合理的解决方案here结果是这样的:确保您完全理解这部分代码:svg.append("g").attr("class","xaxis").attr("transform","translate(0,"+height+")").call(xAxis).selectAll("text").style("text-anchor","end").attr("dx","-.8

javascript - Javascript 和 Jquery 中的 array.eq() 与 array[]

访问数组时,什么时候使用.eq()函数比较合适?例如,我有...slides.eq(slidesLength-1).css("z-index",(slidesLength-1));后来我有...for(i=0;i在第一段代码中,如果我不使用.eq()函数,幻灯片将停止运行。但是,无论我是否使用.eq()函数,第二部分似乎都起作用。这是为什么? 最佳答案 slides不是数组。它是一个jQuery对象。.eq()方法返回指定索引处的元素作为jQuery对象。虽然jQuery对象可能不是数组,但它们可以通过具有length属性以及与索引

javascript - array.map 在字符串中连接时自动附加逗号?

我对此处Array.map函数的行为感到有点困惑:vararr=['one','two','three'];varresult='';result+=arr.map(function(elm){returnelm;});//'one,two,three'它如何自动将返回的结果与,连接起来?注意:只有当我将返回的结果连接成一个字符串时才会发生这种情况。 最佳答案 Array.map对您的数组没有任何作用。你基本上做到了这一点''+['one','two','three']调用数组的toString()方法,默认行为是join(',')

javascript - Chrome : Simulate keypress events on input text field using javascript

stackoverflow中有很多关于此的内容,但似乎没有一个适合我的情况。我有一个输入文本字段,我想模拟按键事件来填充文本字段。原因:我在不提供API的网络界面上自动执行大量数据输入任务。使用.value更改输入字段不会触发界面的JS端(Angular)。这就是为什么我要模拟按键事件。首先我尝试了这个:varinp=document.getElementById('rule-type');inp.dispatchEvent(newKeyboardEvent('keypress',{'key':'a'}));然后我了解到在Chrome中key和code保持为0并且在KeyBoardEv

javascript - 将 Float32Array 转换为 Int16Array

我正在寻找转换Float32Array进入Int16Array.这是我所拥有的(我没有提供数据)。vardata=...;/*newFloat32Array();*/vardataAsInt16Array=newInt16Array(data.length);for(vari=0;i我不相信我做的正确并正在寻找一些方向。 最佳答案 您可以直接从ArrayBuffervardataAsInt16Array=newInt16Array(data.buffer);varf32=newFloat32Array(4);f32[0]=0.1,f