javascript - 在 JS 中 trim 数组

标签 javascript jquery arrays

我有一个数组说

['(','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", "*", ")"]

See also ...

关于javascript - 在 JS 中 trim 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15608284/

相关文章:

C GLubyte 数组

c++ - 使用 ASCII 的凯撒密码返回 C-cedilla

javascript - 对象在 JavaScript 中没有方法错误

javascript - 如何更轻松地切换 .click?

jquery - 如何将数据从 MVC Controller 传递到 jQuery.ajax

javascript - 如何在调用按键后显示新问题,同时隐藏以前的问题

JavaScript 从虚线版本数组中找到最高版本

javascript - Flot:将堆叠条形图和折线图组合在一张图表中

javascript - 循环遍历数组并为每个项目捕获 '-' 之前的字符串并重新构造一个新数组

javascript - Javascript 中类扩展声明之间的区别