2014-01-22 46 views
0
// for example 
var arrayName = [1, 2, 2, 3, 4, 2]; 
alert (arrayName[2].length); // undefined 

我想要什麼獲得價值數是JSON jQuery的..重複

alert (arrayName[2].length); // 3 

或其他任何方式..謝謝

+0

'arrayName [2]'(這意味着「arrayName'數組的第三個元素」)是數字'2'。一個數字沒有「長度」屬性 – zerkms

+0

@ Pheonixblade9:它更可能「不清楚你在問什麼」。根據「預期的結果」,OP不希望只是一些獨特的元素,因爲它會是4,而不是3 – zerkms

+0

這是真的。這兩個擱置條件在這裏適用於剽竊 – Codeman

回答

0

你並不需要一個lenght。

alert(arrayName[2]); 
0

只需添加到您的陣列的原型,你可以從陣列中返回一個唯一的子集:

Array.prototype.getUnique = function(){ 
    var u = {}, a = []; 
    for(var i = 0, l = this.length; i < l; ++i){ 
     if(u.hasOwnProperty(this[i])) { 
     continue; 
     } 
     a.push(this[i]); 
     u[this[i]] = 1; 
    } 
    return a; 
} 

這是Unique values in an array

+1

-1 http://stackoverflow.com/a/1961068/251311如果你「借」一個解決方案 - 要友善地參考原作者 – zerkms

+0

@zerkms我把問題標記爲重複並添加了一個參考 – Codeman

2

重複的只是指數在參考值要計算陣列中的2的數量,您可以做

var instances = arrayName.filter(function(e) { 
    return e===2; 
}).length; 

FIDDLE

0

顯然,您正在混合數組的索引的概念與該數組的實際元素。

總之,arrayName [2] .length返回第二個元素的長度。 這種情況下的第二個元素是2,其長度未定義。

雖然實現目標的好方法是使用庫underscore

arr = [1,2,2,2,3]; 

function countDuplicate(arr, dup) { 
    return (_.filter(arr, function(num){ 
    return num == dup; 
    })).length; 
} 

console.log(countDuplicate(arr, 2)); 

小提琴可用here