Home > Back-end >  How to create a nested list by sending data from a function
How to create a nested list by sending data from a function

Time:07-02

I have the next code:

let dataList = [];

function filli(index, name, words){
    dataList[index] = index;
    dataList[index] = name;
    dataList[index] = words;
}

filli(0, "David", "Testing this")
filli(1, "John", "My cellphone")
console.log(dataList)

I get in console the next:

$ node attempt.js
[ 'Testing this', 'My cellphone' ]

And my expected output in console would be:

[[0, "David", "Testing this"], [1, "John", "My cellphone"]]

But I don´t get that in console, as you can see I was trying to get that data in my filli function, sending an index, name, and words but it doesn't work.

I hope you can help me, thank you.

CodePudding user response:

You are overriding existing values when you do dataList[index]= .... You need to add them as an array, something like this:

let dataList = [];

function filli(index, name, words){
    dataList[index] = [index, name, words];
}

filli(0, "David", "Testing this")
filli(1, "John", "My cellphone")
console.log(dataList)

CodePudding user response:

You are overriding the same value:

let dataList = [];

function filli(index, name, words){
    dataList[index] = [] // first create new array
    dataList[index][0] = index; // then assign to proper indexes
    dataList[index][1] = name;
    dataList[index][2] = words;
}

filli(0, "David", "Testing this")
filli(1, "John", "My cellphone")
console.log(dataList)

CodePudding user response:

Ideally functions should return a value which your function doesn't at the moment. An alternative solution would be to add your arguments to an array and return that, and then push that result into the dataList array.

const dataList = [];

function filli(index, name, words){
  return [index, name, words];
}

dataList.push(filli(0, 'David', 'Testing this'));
dataList.push(filli(1, 'John', 'My cellphone'));

console.log(dataList);

  • Related