使用Javascript消除立即数组值

时间:2013-03-11 12:41:21

标签: javascript

我正在开展项目,我有一个与此相关的阵列

var sortBp = [ 'height58em', 'width480px', 'width767px', 'width768px', 'width959px' ];

我想消除任何立即数字数组&只显示他们之间的数字更高

例如,来自数组width767px& width768px是立即数字数组。

我想要消除width767px&保持width768px,因为它的数字越大。

所以最后的结果将是

var sortBp = [ 'height58em', 'width480px', 'width768px', 'width959px' ];

纯粹的javascript函数可以吗?

编辑:

我已经使用follwoing函数对数组进行了排序,但我不清楚如何删除立即数组。

  var sortBp = bpArrays.sort(function(a, b) {
                    a = a.replace(/[a-z]/g, '');
                    b = b.replace(/[a-z]/g, '');
                    return a - b;
                });

3 个答案:

答案 0 :(得分:0)

当然有可能。只需对数组进行排序,然后迭代并收集每个属性的第一个和最后一个“外观”。

答案 1 :(得分:0)

您可以执行类似

的操作
var sortBp = [ 'height58em', 'width480px', 'width767px', 'width768px', 'width959px' ];
var x = [];
var regex = /\d+/;
for(var i = 0; i < sortBp.length; i++){
    var c = sortBp[i], n = sortBp[i + 1];

    if(c && n && c.substring(0, 3) == n.substring(0, 3)){
        var cn = regex.exec(c)[0];
        var nn = regex.exec(n)[0];
        if(cn != nn - 1){
            x.push(c);
        }
    } else {
        x.push(c);
    }
}

console.log(x);

演示:Fiddle

答案 2 :(得分:0)

试试这个:

var sortBp = [ 'height58em', 'width480px', 'width767px', 'width768px', 'width959px' ];
var arr=[];
for(var i=0;i<sortBp.length;i++)
{
    num=sortBp[i].replace(/\D/g,'');
    arr.push(num);
}
var newarr=[];
for(var i=0;i<arr.length;i++)
{
    if(arr[i+1] && arr[i]!=arr[i+1]-1)// for sorted array only 
    //or you can use sort method of javascript 
    //From http://www.javascriptkit.com/javatutors/arraysort.shtml
    {
        newarr.push(arr[i]);
    }
}
newarr.push(arr[arr.length-1]);// for last Element
console.log(newarr);

小提琴 http://jsfiddle.net/R75bd/