草庐IT

string-array

全部标签

javascript - Array.push 与 Array.unshift 的性能对比

我在阅读有关数组操作的运行时复杂性的文章时了解到...ECMAScript规范不要求特定的运行时复杂性,因此它取决于特定的实现/JavaScript引擎/运行时行为[1][2].Array.push()以常数和Array.unshift()以线性时间运行,用于稀疏由类似哈希表的数据结构实现的数组[3].现在我想知道push和unshift在densearrays上是否具有相同的常数和线性时间复杂度.Firefox/Spidermonkey中的实验结果证实:现在我的问题:是否有官方文档或引用资料证实观察到的Firefox/Spidermonkey和Chrome/Node/V8的运行时性能

javascript - 为返回 promise 数组的 Array.map 调用添加毫秒延迟

我的需求很简单。我想将对sendEmail的调用延迟100毫秒。电子邮件服务提供商允许每秒最多发送10封电子邮件。但是请注意,虽然.map是同步的,但它会立即返回一个Promise。我试过setTimeout没有用,比如setTimeout(()=>resolve(x),100)和setTimeout(()=>{returnnewPromise....},100)。想法?constpromises=userEmailArray.map((userEmail)=>{returnnewPromise((resolve,reject)=>{....mailer.sendEmail(userE

javascript - 什么是 "string math",为什么不好?

我最近因为在我编写的应用程序中使用“字符串数学”而受到一位开发人员的斥责。我对整个开发过程还很陌生,没有接受过正规培训,也没有听说过这个问题。这是什么?有问题的代码:$('.submit-input').click(function(){varvalid=true;$('input,select,radio').removeClass('error');$('.error-message').hide();$('.validate').each(function(){if($(this).val()==$(this).attr('default')){valid=false;$(thi

functional-programming - 是否有一个JavaScript库向Array添加缺少的标准迭代方法(过滤器,映射,减少,某些…)?

是否有一个javascript库,它只是添加了一些已经标准化的数组、对象和其他标准对象的方法,但并不是所有浏览器都可以使用这些方法?我在想Array中的iterationmethods,比如filter()、map()、reduce()、some()或keys()中的Object。请注意,我不希望库引入任何花哨的东西;如果当前浏览器中还没有实现“标准”方法,则只引入它们。 最佳答案 我相信你在找Underscore.js。http://documentcloud.github.com/underscore/

javascript - 在 coffeescript 中以编程方式调用函数/"by string"

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Dynamicobjectpropertyname我有一个函数需要根据用户输入的数据调用。例如,我有:models.catmodels.dog现在,我希望能够调用models.[my_str],其中my_str="snake"。所以计算机会认为它正在尝试执行models.snake。有没有办法在javascript或更好的coffeescript中做到这一点?

javascript - 带 RequireJS 的 Underscore.string

我正在尝试同时使用Underscore和Underscore.string与RequireJS.main.js的内容:require.config({paths:{'underscore':'//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min','underscore-string':'//cdnjs.cloudflare.com/ajax/libs/underscore.string/2.3.0/underscore.string.min',},shim:{'underscore':{exports:

javascript - Jasmine array.length 期望

我是jasminejs测试框架的新手,今天得到了一些奇怪的结果。参见以下代码(search是一个执行api请求并返回promise的函数):it('shouldbeabletosearch',function(){search('string').done(function(result){expect(result.length).toBeGreaterThan(1);//trueconsole.log(result.lenght);//undefined});});问题是,由于一些我必须修复的错误,promise的结果是未定义的,但测试被标记为Success。我发现这是一种误导,如

javascript - 为什么 String.match(/\d*/) 返回一个空字符串?

有人能帮我理解为什么使用\d*返回一个包含空字符串的数组,而使用\d+返回["100"](如预期的那样)。我明白为什么\d+有效,但不明白为什么\d*不起作用。使用*会导致它返回零长度匹配吗?它究竟是如何工作的?varstr='oneto100';varregex=/\d*/;console.log(str.match(regex));//[""] 最佳答案 请记住,match正在寻找它可以找到的与给定正则表达式匹配的第一个子字符串。*意味着可能有零个或更多的东西,所以\d*意味着你正在寻找一个包含零个或多个数字的字符串。如果您输入

javascript - 为什么 string.replace(/\W*/g ,'_' ) 在所有字符前加上?

我一直在学习js中的正则表达式,遇到一个我不明白的情况。我使用以下正则表达式对替换函数进行了测试:/\W*/g并期望它在字符串的开头添加前缀并继续替换所有非单词字符。TheNumberis(123)(234)会变成:_The_Number_is__123___234_这将在字符串前面添加,因为它至少有零个实例,然后替换所有不间断空格和非单词字符。相反,它在每个字符前加上所有非单词字符。_T_h_e__N_u_m_b_e_r__i_s__1_2_3__2_3_4__为什么要这样做? 最佳答案 问题是\W*的意思。它的意思是“0个或多个

javascript - React : Given an array, 有效地以相反的顺序渲染元素

我目前以典型的React风格呈现列表。该列表作为数组属性传递,我像这样映射它:{this.props.myList.map(createListItem,this)}因此,当添加一个新元素时,它看起来像是最新的项目被添加到列表的末尾。我希望最新的项目出现在顶部。即一切都按时间倒序出现。到目前为止,我想到的两个选项是:1)反转列表,每次添加内容时创建一个新数组,并将这个反转列表作为prop传递。2)使用shift。但由于性能原因,它们都没有吸引力。我不知道Javascript支持倒序映射。我一直在尝试for循环,但一直无法让它工作。在React中以相反顺序呈现数组的惯用方法是什么?