0
我有一個數組,其中每一行都是一個具有2個值S/N和說明的數組。將二維數組與鍵值數組結合
array1 = [["xx9","Big Car"],["xx1","Small Car"],["xx9","Big Car"],["xx9"," Big Car"]];
正如你可以看到有重複。所以我編寫了一個代碼,它創建了一個count
數組,該數組包含鍵值對並計算每個項目。計數的長度爲1
count = [xx1: 1
xx9: 3]
所以現在我想將兩個數組合併成一個新的,包括數量,在這個例子中,最終輸出將如下圖所示。請注意,我還必須刪除array1中的重複項。順序無關緊要。
final_array = [["1","xx1","Small Car"],["3",xx9","Big Car"]];
這是到目前爲止我的JS代碼,但基本上是.forEach循環不會在count
陣列工作。任何人都可以幫助我,以便該代碼在鍵值數組上工作。
JS/jQuery的:
//Pull the Cart Data & Orangize
var savedList = JSON.parse(localStorage.getItem("partList"));
console.log(savedList);
determineQuantity(savedList); //Count quantity of each item
//Count the Quantity of each item in saved list & create key-value pairs
function determineQuantity(savedList){
var newList = [];
var count = [];
for (var i=0, j = savedList.length; i<j; i++){
count[savedList[i][0]] = (count[savedList[i][0]] || 0) + 1;
};
console.log(count);
//Combine Quantity Array with SavedList Array
count.forEach(function(item,index){
console.log("index = " + index + " item = " + item);
savedList.forEach(function(row){
if ($.inArray(item,row == 0)){ //if found in this row at index 0
var new_part = [count[index],row[0],row[1]];
console.log("new_part = " + new_part);
newList.push(new_part);
};
});
});
console.log(newList);
};
你能解釋這個'map [item [0]] = item [1]'...爲什麼我們把它等同於item [1]? – Badrush
我們只是創建一個名爲map的對象。它們包含所有鍵/值對。像{「xx9」:「BigCar」,「xx1」:「小汽車」}。 map [「xx9」] =「大車」;地圖[「xx1」] =「小型汽車」;這是我們正在做的每個 – subash
啊我現在看到了。 item [0]是xx9,item [1]是BigCar 我的下一個問題是你能解釋'!map [key]'和'continue'嗎? – Badrush