我正在研究一個程序,並希望對Javascript有所不同。在我的程序,我有一個黑名單數組,它包含不允許使用的是在我的最終結果,如下面的值:JavaScript與子陣列的區別
blacklist = ["One", "Two", "Four"]
someArr = ["One", "Three", "Five", "Two", "One"]
//Desired result = ["Three", "Five"]
我發現了一個巨大的尖端從另一個堆棧問題(如下所示的代碼)。
Array.prototype.diff = function(a) {
return this.filter(function(i) {return !(a.indexOf(i) > -1);});
};
////////////////////
// Examples
////////////////////
[1,2,3,4,5,6].diff([3,4,5]);
// => [1, 2, 6]
["test1","test2","test3","test4","test5","test6"].diff(["test1","test2","test3","test4"]);
// => ["test5", "test6"]
問題是我需要將字符串數組與3維數組中的特定鍵進行比較。這裏是我的結構:
Array1 = [collab1: "Name, Someone's",
collab2: "Else, Somebody",
...: ...],
[collab1: "Else, Somebody",
collab2: "Thornton, Billy Bob",
...: ...];
Array2 = ["Name, Someone's", "Else, Somebody", "Thornton, Billy Bob"]
我想使用diff類來檢查針對Array2的每個索引的collab1。這可能嗎?
你只需要比較它們或獲得差異? – Rustam 2012-07-31 13:47:01
「Array1」後面的語法無效。它看起來像一個對象字面值,但是你將它包裝在'[]'而不是'{}'中,這使得它無效。 – 2012-07-31 13:48:18
array1和array2不是數組,它們是對象......你必須迭代它們,'for(var array1中的var鍵)...' – 2012-07-31 13:48:32