计数并存储在数组中

时间:2019-03-25 02:48:56

标签: arrays typescript for-loop

我有一个数组b [2,1,1,1,2,0]。目的是找到阵列的模式。但是,在执行此操作之前,我必须创建一个中间数组来存储每个数字的计数。为此,我需要使用输入数组中的元素值作为中间数组的索引号。 我的if语句的第一部分有效。我的else语句中的代码有问题,该语句用于计算所有非0的数字。如果我打印(newArr)它应该打印的数组是[1,3,2],但是当前正在打印的是[1,4,5]。

 import { print } from "";

 export let main = async () => {

    let input = [2, 1, 1, 1, 2, 0];
    print(input);

 export let mode = (b: number[]): number => {
    let newArr: number[] = [];
    let current = 0;
    let count = 0;
    }
    for (let i = 0; i < b.length; i++) {
        if (b[i] === 0) {    
            newArr[b[i]] = count + 1;
            count = newArr[b[i]];
        } else {
            newArr[a[i]] = current + 1;
            current = newArr[a[i]];
        }
    }
    print(newArr)

如果数组为b [2,1,1,2,1,0],则应返回1作为模式,如果我们打印了创建的数组,则应打印newArr [1,3,2],因为元素0出现1次,元素1出现3次,元素2出现2次。想法是从0作为输入数组中的元素,到0作为中间数组中的索引。所以最后我们看到在索引1处最大的出现次数(或中间数组中的最大元素)为3,所以模式为1。

0 个答案:

没有答案