3 回答

TA貢獻1825條經(jīng)驗 獲得超6個贊
頻率存儲在snot incounts[s]
你在counts[s]哪里記錄var s = counts[holder_text_array[i][1]];
您已經(jīng)從countsin 中獲得了元素s。只需記錄的值s
除此之外,該功能有效!
counts = {};
counter = 0;
counter_array = [50,50,0,200]; //this is just for example, this array is filled dynamically
for (var x = 0, y = counter_array.length; x < y; x++) {
counts[counter_array[x]] = (counts[counter_array[x]] || 0) + 1;
}
console.log('FREQUENCY: ',counts); //outputs FREQUENCY: {50:2, 0:1, 200:1}
holder_text_array = [["a",50,0],["b",0,0]]; //example of dynamically filled array
var p = "a";
var i = 0;
while(i < holder_text_array.length){
if (holder_text_array[i][0]==p) {
var s = counts[holder_text_array[i][1]];
console.log('Element: ', holder_text_array[i][1]); //prints 50 for i = 0
console.log('frequency: ', s); // CHANGED THIS TO JUST `s`
counter = counts[s];
}
i++;
}

TA貢獻1821條經(jīng)驗 獲得超5個贊
我解決了這個問題。問題在于初始化。我更改了以下內(nèi)容:
var s = counts[holder_text_array[i][1]];
counter = counts[s];
它是這樣工作的:
var s = holder_text_array[i][1];
counter = counts[s];

TA貢獻1812條經(jīng)驗 獲得超5個贊
您可以采用遞歸方法并為具有相同counts對象的(嵌套)數(shù)組再次調(diào)用 count 函數(shù)。
結(jié)果包含每個元素的計數(shù)。
function getCounts(array, counts = {}) {
for (let i = 0; i < array.length; i++) {
const value = array[i];
if (Array.isArray(value)) {
getCounts(value, counts);
continue;
}
if (!counts[value]) counts[value] = 0;
counts[value]++;
}
return counts;
}
console.log(getCounts([["a", 50, 0], ["b", 0, 0]]));
添加回答
舉報