【问题标题】:Writing arrays only one time. jQuery只写一次数组。 jQuery
【发布时间】:2014-07-01 03:44:27
【问题描述】:

我只想写一次数组元素。比如如果我想写 3 它应该只写一次。是否可以使用数组来实现它。

我的代码

var arr = [ 1,1,1,1,1,1,1,1,3,3,3,3,3,3,4,4,4,4];

arr = $.grep(arr, function( x, y ) {
  return ( x !== 1);
});
$( "p>span" ).text( arr.join( ", " ) );

DEMO;

【问题讨论】:

标签: jquery arrays


【解决方案1】:

假设您的意思是要从数组中删除重复值,您可以在 jQuery 中使用 $.unique 帮助器:

var arr = [1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4];
$("p > span").text($.unique(arr));

Updated fiddle

【讨论】:

    【解决方案2】:

    哦,好吧 - 我有点晚了。但这里有一个替代方案 - 如果您使用的是 underscore.js:

    _.uniq([1,1,1,1,1,1,1,1,3,3,3,3,3,3,4,4,4,4]);
    

    或者使用过滤器:

    var unique=a.filter(function(itm,i,a){
        return i==a.indexOf(itm);
    });
    

    Source

    【讨论】:

      【解决方案3】:

      试试这个:

       var result = [];
       $.each(arr, function(i, e) {if ($.inArray(e, result) == -1) result.push(e);});
       return result;
      

      Working Demo

      【讨论】:

        【解决方案4】:

        试试this

        var arr = [1,1,1,1,2,2,2,2,2,3,3,1,1];
        var sorted_arr= arr.sort(); 
        
        var newArr= [];
        for (var i = 0; i < sorted_arr.length - 1; i++) {
            if (sorted_arr[i + 1] == sorted_arr[i]) {
                newArr.push(sorted_arr[i]);
            }
        }
        

        希望对你有帮助。

        【讨论】:

          【解决方案5】:

          您的代码已在此处更新jsfiddle ..

          function eliminateDuplicates(arr) {
            var i,
                len=arr.length,
                out=[],
                obj={};
          
            for (i=0;i<len;i++) {
              obj[arr[i]]=0;
            }
            for (i in obj) {
              out.push(i);
            }
            return out;
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-11-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多