我有一个数组说
['(','C','1','2',')']
现在我想从 indexOf('C') + 2
开始的数组中 trim 数据,如果它是一个数字,我需要将它从数组中删除。所以对于上面的示例最终数组必须是
['(','C','1',')']
例如,如果我有 ['(','C','1','2','3','*',')']
我希望它被 trim 到 ['(','C','1','*',')']
, 在元素 'C' 之后只允许一个数字。
我知道我可以通过获取 indexOf('C') 然后检查每个元素的数字来遍历数组.. 但可以帮助我找到一些有效且更好的方法。比如使用 splice 什么的。
最佳答案
如果你想“trim ”的位置是已知的,你可以在这里使用 filter
,比如:
var a = ['(','C','1','2','3','*',')']
.filter( function(a){
this.x += 1;
return this.x<=2 ? a : isNaN(+a);}, {x:-1}
);
这可能导致此 Array
扩展:
Array.prototype.trimNumbersFrom = function(n){
return this.filter( function(a){
this.x += 1;
return this.x<=n ? a : isNaN(+a);
}, {x:-1}
);
};
//=> usage
var a = ['(','C','1','2','3','*',')'].trimNumbersFrom(2);
//=> ["(", "C", "1", "*", ")"]
关于javascript - 在 JS 中 trim 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15608284/