javascript forEach循环可能有奇怪的输出
Possible strange output of javascript forEach loop
这个输出有什么意义?也许我想错了,但它似乎相当描述性,应该是东
var dataset = [1, 2, 3];
dataset.forEach(function(element, index, array) {
// (index, how many to remove)
array.splice(0, 0);
});
returns [1,2,3] as expected
dataset.forEach(function(element, index, array) {
array.splice(0, 3);
});
returns [] as expected
dataset.forEach(function(element, index, array) {
array.splice(0, 1);
});
returns [3]
dataset.forEach(function(element, index, array) {
array.splice(0, 2);
});
returns [3]
这让我质疑我对一切的理解,哈哈。我有一个更复杂的要求,一组对象可能具有属性"element.archived"
var dataset = [Object, Object, Object]
dataset.forEach(function(element, index, array) {
if (element.archived) array.splice(index, 1);
});
我正在尝试对数组进行迭代,并删除所有属性值为true的对象。
因此,您希望从具有archived: true
的数组中删除对象。以下是几种方法:
您可以使用filter
返回新的过滤数组:
var arr = dataset.filter(function (el) {
return el.archived !== true;
});
或者,您可以使用splice
在迭代元素时删除它们:
for (var i = dataset.length - 1; i >= 0; i--) {
if (dataset[i].archived === true) dataset.splice(i, 1);
}
演示
相关文章:
- 边栏按钮和infoWindow是否可能有不同的内容
- 有没有可能有多个有棱角和咕哝的跑步块
- 使用RegExp获取一系列单词,这些单词前后可能有空格,也可能没有空格
- React Native AlertOS api中可能有多个文本字段
- 可能有一个javascript和php的配置文件
- 这个Javascript变量怎么可能有价值
- 这是关闭吗?这可能有什么意义
- 代码只是没有执行,可能有语法问题,或者我可能完全错了
- 一个有内容的iFrame怎么可能有一个未定义的contentDocument对象
- javascript forEach循环可能有奇怪的输出
- 变量数组中的对象是否可能有2个值
- MongoDB内部的一个查询中可能有多个条件
- EXTJS文本区域中可能有粗体文本
- 在Javascript中,从localStorage检索时是否可能有一个等待动画
- 可能有多个内容脚本为不同的功能
- 是否有可能有完整的CRUD功能在剑道网格与本地数据
- Javascript:有没有可能有一个函数在Object/String..创建
- 是否有可能有一个按钮,可以切换音频的播放状态
- 八字胡js:是否有可能有八字胡渲染HTML是在json对象传入
- 试图缩短文本主体,其中可能有链接