从字符串数组中删除不包含“&;in&;”的所有元素
Remove all elements from array of strings that do not contain "IN"
我需要删除数组中所有不包含大写" in "的元素
我的想法是用for循环遍历数组,并将包含IN的所有值写入另一个数组。
是否有一种方法,我可以做到这一点,而不写入一个新的数组,只是从当前数组中删除那些不匹配的项目?
下面是我打算怎么做的代码:
arrTwo = [];
for(var i = 0; i<arr.length; i++){
if(arr[i].indexOf('IN') > -1) arrTwo.push[arr[i]];
}
您可以使用ES5 filter
方法:
arr = arr.filter(function(s){
return ~s.indexOf("IN");
});
使用ES6的箭头函数,可以简化为:
arr = arr.filter(s=>~s.indexOf("IN"));
这是一个非常好的线程,它有几个方法来完成这一点。如果没有以正确的方式删除数组中的元素,那么该元素将是未定义的,而不是实际删除的。.spilce()
方法是您想要研究的。
在JavaScript中删除数组元素- delete vs splice
我将使用splice()
方法:
var testArray = [ 'this one contains IN', 'this one does not' ];
function filterArray ( arr ) {
var i = arr.length;
//-- Loop through the array in reverse order since we are modifying the array.
while (i--) {
if (arr[i].indexOf('IN') < 0) {
//-- splice will remove the non-matching element
arr.splice(i, 1);
}
}
}
filterArray( testArray );
document.body.innerText = JSON.stringify(testArray);
JSFiddle: http://jsfiddle.net/5DW8L/1/
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 组件之后子元素中的某个方法DidMount in parrent 元素
- MongoDB:如何使用特定规则查询$in中的特定元素
- SimpleSaveWriteStore in dojo - 如何读取元素
- 使用 - in 键引用 json 中的元素
- 当包含ng-include属性的元素本身是使用angularjs中的ng-includ属性添加的时,嵌套的ng-in包括
- 在视图中使用compile in指令和ng repeat的组合会阻止正确更新范围元素列表
- Rails 3.2+jQuery+render partial in js.erb=损坏的HTML元素
- For in循环返回对象中每个元素的数组
- 如何在页面加载时淡出in元素而不是“appearance”
- 从字符串数组中删除不包含“&;in&;”的所有元素
- 用for排序元素.In和每个循环
- 使用Replace with in查询来替换多个元素
- 元素 (..) 和元素 (..) 之间的区别.getWebElement() in Protractor.
- AngularJS:当不同的元素发生变化时触发$watch in指令
- 使用in检查元素是否存在似乎不能正常工作