草庐IT

vertex-array-object

全部标签

javascript - 如何停止 array.filter() 函数

我正在使用自定义搜索过滤器HTML我在搜索框上使用ngModelChange()事件globalSearch(realData,searchText,columns){searchText=searchText.toLowerCase();returnrealData.filter(function(o){returncolumns.some(function(k){returno[k].toString().toLowerCase().indexOf(searchText)!==-1;});});}splitCustomFilter(){letcolumns=['PartNoComp

Javascript:直接用索引替换 Array.splice()

今天,我遇到了一个SOquestion替换对象数组中的匹配对象。为此,他们使用lodash在对象数组中查找匹配对象的索引。.varusers=[{user:"Kamal"},{user:"Vivek"},{user:"Guna"}]varidx=_.findIndex(users,{user:"Vivek"});//returns1现在他们使用splice()来替换,users.splice(idx,1,{user:"Gowtham"})但为什么不呢,users[idx]={user:"Gowtham"};现在我的问题是,有什么理由不这样做或不使用splice()?因为使用array[

javascript - Object([]); 是做什么的?做?

在MDN中一些数组原型(prototype)函数的polyfill示例中,有以下两行(例如:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find):varlist=Object(this);varlength=list.length>>>0;我假设第一个例子是自动装箱(?)。但是,如果this始终是一个数组,那么它的目的是什么?第2行,这与以下内容有何不同:varlength=list.length||0;谢谢! 最佳答案

javascript - 使用 Object.create 的优势

类似于但不同于thisquestion.以下代码来自JavaScript:TheDefinitiveGuide.他基本上是在定义一个继承方法,如果它存在则服从Object.create,否则使用构造函数和交换原型(prototype)进行普通的旧Javascript继承。我的问题是,既然Object.create在许多常见浏览器IE上不存在,那么尝试使用它有什么意义呢?它肯定会使代码困惑,上一个问题的评论者之一提到Object.createisn'ttoofast.那么尝试添加额外代码以便偶尔使用这个ECMA5函数有什么好处,它可能会或可能不会比执行此操作的“旧”方法慢?functio

javascript - Array.prototype.map() 和 Array.prototype.forEach()

我有一个数组(下面的示例数组)-a=[{"name":"age","value":31},{"name":"height(inches)","value":62},{"name":"location","value":"Boston,MA"},{"name":"gender","value":"male"}];我想遍历这个对象数组并生成一个新对象(不是特别减少)。我有这两种方法-a=[{"name":"age","value":31},{"name":"height(inches)","value":62},{"name":"location","value":"Boston,MA"}

javascript - Object.__proto__ 中有什么?

在GoogleChrom的javascript中,对象有一个名为__proto__的属性,它指向它们的原型(prototype)(或父)对象。varfoo={};console.log(foo.__proto__===Object.prototype);//returnstrue但是,对于Object对象,这是不正确的。console.log(Object.__proto__===Object.prototype);//returnsfalseObject.__proto__属性似乎是一个空方法>console.log(Object.__proto__.toString());func

javascript - 当我在 Chrome 中单击 "Allow"时,为什么 getUserMedia 会抛出 [object NavigatorUserMediaError]?

最近,我在尝试通过我的网站访问客户的麦克风时开始遇到错误。当Chrome询问是否允许网站访问用户的麦克风时,无论他们点击“允许”还是“拒绝”,都会生成[objectNavigatorUserMediaError]。无论麦克风是否实际插入计算机(运行Ubuntu12.04),这种情况都会发生。通过Firefox进行的进一步测试表明,这并非Chrome所特有。问题仅在我完成实时输入演示然后退出计算机后才出现。我尝试制作一个访问麦克风的基本演示,但它遇到了同样的问题。vargetVideo=false,getAudio=true;navigator.getUserMedia||(naviga

javascript - Array.prototype.filter(Number) 中的 'Number' 是如何工作的?

我发现使用Array.prototype.filter方法从字符串中删除所有非数字的方式很酷,但我不完全确定它是如何使用Number实现这个的原型(prototype):vararr='75number9';arr.split(/[^\d]/).filter(Number);//returns[75,9]当我检查typeofNumber时,我返回'function'。这是怎么回事?让我更加困惑的是,如果我用String替换Number,结果是一样的。它仍然有效!arr.split(/[^\d]/).filter(String);//returns[75,9]Array和Object作为

javascript - Array.observe 的 "add"事件在什么情况下会触发?

我正在学习如何观察数组对象。我发现以下内容令人惊讶:varfooArray=[];Array.observe(fooArray,function(changes){console.log('changes:',changes[0].type);});fooArray.push({});导致变化的类型是拼接而不是添加哪些方法会导致add类型的更改事件?在我看来,在其上推送单个值是最有可能的情况。 最佳答案 MDNreference不清楚在什么情况下触发每种变化类型。详细解释如下:拼接涵盖您希望在数组中发生的所有更改。以下所有函数都会触

javascript - Chai 期待 : an array to contain an object with at least these properties and values

我正在尝试验证像这样的对象数组:[{a:1,b:2,c:3},{a:4,b:5,c:6},...]至少包含一个同时具有{a:1}和{c:3}的对象:我想我可以用chai-things做到这一点,但我不知道对象的所有属性都可以使用expect(array).to.include.something.that.deep.equals({??,a:1,c:3});和contain.a.thing.with.property不适用于多个属性:/测试此类内容的最佳方法是什么? 最佳答案 所需的解决方案似乎是这样的:expect(array).