草庐IT

must_be_array_or_string

全部标签

javascript - 返回 String vs Integer vs undefined vs null

为什么javascript比任何其他选择更喜欢返回String?考虑以下代码段。vararr=['Hello1','Hello2','Hello3'];Array.prototype.item=function(x){returnthis[x]||null||'aïe'||12||undefined;};console.log(arr.item(43));//returnsaïe我故意调用了一个不存在的数组元素。但是我不明白为什么arr.item(43)返回String?为什么不是null或undefined甚至12? 最佳答案 因

javascript - 如何在 JavaScript 中使用 array reduce with condition?

所以我有一个数组constrecords=[{value:24,gender:"BOYS"},{value:42,gender:"BOYS"},{value:85,gender:"GIRLS"},{value:12,gender:"GIRLS"},{value:10,gender:"BOYS"}]我想得到sum所以我使用了JavaScriptarrayreduce函数并得到了它。这是我的代码:someFunction(){returnrecords.reduce(function(sum,record){returnsum+record.value;},0);}通过该代码,我得到了正确

javascript - 将 someVar +'a string' 传递给 Handlebars.js 助手?

假设我有这个Handlebars助手:Handlebars.registerHelper('someRandomHelperCreatingALink',function(passedVarAndString,url){return''+passedVarAndString+'';});并且想像这样使用它,我将一个字符串和一个变量作为第一个参数传递(user.name+'isacooldude!'):{{{someRandomHelperCreatingALinkuser.name+'isacooldude!!''/a/cool/url'}}}我的问题:这是否可能?或者我是否必须为字符

javascript - map : Adding html annotation to it or other any other alternative charts

我正在尝试在地理图表上添加文本叠加层。我只能在工具提示中添加文本,但只有在鼠标悬停/选择时才可见。但我希望它始终可见。下面是fiddle链接。当我尝试添加注释时,geochart出现错误。http://jsfiddle.net/aSrVH/汽车数据=新谷歌。可视化。数据表();Data.addColumn('string','Country');data.addColumn('number','Value');data.addColumn({type:'string',role:'tooltip'});我无法将上面的内容更改为:data.addColumn({type:'string'

javascript - 任何框架或任何人都需要使用 String/Number/Boolean 对象而不是原始版本的原因是什么?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:WhyaretheretwokindsofJavaScriptstrings?例如,如果我们需要动态计算正则表达式,就需要使用newRegExp()来代替正则表达式。然而,当任何人都需要使用String/Number/Boolean对象而不是它们的原始版本时,边缘情况究竟是什么?(因为我似乎什至想不出在什么地方会需要它)

javascript - 在 Jasmine 中,array.includes 不起作用(必须用其他函数代替)。为什么?

我的问题看起来很奇怪。我有一个带有一个新的、非常简单的函数的构造函数,它应该检查一个变量是否包含在一个数组中。它工作得很好(我在一个表单中使用这个函数)。但是...我无法对此函数编写任何单元测试,因为Karma/Jasmine看不到数组的“包含”函数。有人可以建议我该怎么做吗?这里的情况稍微简化了一点://要测试的构造函数vm.isNameAlreadyUsed=function(){//debutlogging:console.log("vm.allNames",vm.allNames);//output:vm.allNames['A','B','C']console.log("an

javascript - 热重载会破坏应用程序。最终加载器没有返回 Buffer 或 String

我有一个自定义加载程序加载以下文件data.jsconstdata={a:()=>8885555,b:()=>55555}module.exports=name=>{returndata[name]&&data[name]()}当我更改上述文件(如更改b值)时,应用程序中断ERRORin../data.js?name=aModulebuildfailed:Error:Finalloader(../data-loader.js)didn'treturnaBufferorStringatrunLoaders(C:\Users\010\Saber.js\webpack-hmr-3-ways\

javascript - TypeScript Array.prototype.map 声明

规范根据MDNspecificationforArray.prototype.map()map应该这样使用...varnew_array=arr.map(callback[,thisArg])问题TypeScript有几个映射的重载声明,这使得extendArray变得非常困难。.我希望看到这个(在lib.d.ts中)...map(callbackfn:(value:T,index:number,array:T[])=>U,thisArg?:any):U[];但是lib.d.ts也有这些……map(this:[T,T,T,T,T],callbackfn:(value:T,index:n

javascript - Array.sort 的这个中间阶段发生了什么?

在深入研究数组方法时,我决定看一下Array.sort方法中涉及的步骤。看一下这段代码,用于反转数组的顺序:letarr=[];for(leti=1;i{console.log(arr);console.log(`Comparing${value1}:${value2}`);returnvalue2-value1;});console.log(arr);我得到这个输出:[1,2,3,4,5]Comparing1:2[2,1,3,4,5]Comparing1:3[2,1,1,4,5]Comparing2:3[3,2,1,4,5]Comparing1:4[3,2,1,1,5]Compari

javascript - 为什么继承Array在ES5中很难实现?

在ES5中使用原型(prototype)继承,从Array继承并获得预期的行为看起来并不简单,比如在将项目添加到Array时自动更新.length(见下面的代码)。ES5创建派生函数对象(MyArray),然后将基类型传递给它进行初始化,为什么这个模型很难在这个模型中获得预期的行为?ES6改变了基础构造函数中的行为和创建对象,然后派生类的构造函数对其进行初始化(在调用super()之后),想知道为什么这样解决了问题。functionMyArray(){}MyArray.prototype=Object.create(Array.prototype);varmyArr=newMyArra