2

How to slice data in nested array? I want to use it with pagination for limit the data for display. I have try it with object key but only limit the nested array without show parent data

I am trying use object key like this. The ouput is correct but not show the parent like data1, data2, etc

  dataJson.map(d => {
    for(var i=0;i<Object.keys(d).length;i++){
      let rev = d[Object.keys(d)].slice(1 * 2 - 2, 1 * 2);
      console.log(rev);
   }
  })

output

    {
      id: 1,
      name: "John" 
    },
    {
      id: 2,
      name: "James" 
    }

    {
      id: 1,
      name: "May" 
    },
    {
      id: 2,
      name: "Joe" 
    }

structure data json in single object array

 "data": [
    {
      "data 1": [
        {
          id: 1,
          name: "John" 
        },
        {
          id: 2,
          name: "James" 
        },
        {
          id: 3,
          name: "James" 
        }
      ]
    },
    {
      "data 2": [
        {
          id: 1,
          name: "May" 
        },
        {
          id: 2,
          name: "Joe" 
        },
        {
          id: 3,
          name: "Din" 
        }
      ]
    },
    data 3,
    many data others
 ]

i want to display it like this (limit data and show 2 data from nested array) with function slice

 "data": [
    {
      "data 1": [
        {
          id: 1,
          name: "John" 
        },
        {
          id: 2,
          name: "James" 
        }
      ]
    },
    {
      "data 2": [
        {
          id: 1,
          name: "May" 
        },
        {
          id: 2,
          name: "Joe" 
        }
      ]
    },
 ]
2
  • asked this question without any attempt ? show us what you write so far. Commented Dec 18, 2021 at 11:05
  • hi Nur, thanks for comment. i have update the questions and do what i did before Commented Dec 19, 2021 at 6:38

2 Answers 2

2

See more about Object.entries

let data = [{ "data 1": [{ id: 1, name: "John" }, { id: 2, name: "James" }, { id: 3, name: "James" }] }, { "data 2": [{ id: 1, name: "May" }, { id: 2, name: "Joe" }, { id: 3, name: "Din" }] },]
let out = data.map(v => {
    let obj = {}
    for (let [k, arr] of Object.entries(v))
        obj[k] = arr.slice(0, 2);

    return obj
});
console.log(out);

Sign up to request clarification or add additional context in comments.

Comments

1

This is your requirement

    var array = [];
var data = []
var data1 = [{ name: 's' }, { name: 'v' }, { name: 'c' }];
var data2 = [{ name: 's' }, { name: 'v' }, { name: 'c' }];

array['data'] = data;
data['data 1'] = data1;
data['data 2'] = data2;

for (var i = 1; i < 3; i++) {
    array.data['data ' + i].splice(2, 1)

}
console.log(array);

OutPut:

[
  data: [
    'data 1': [ [Object], [Object] ],
    'data 2': [ [Object], [Object] ]
  ]
]

1 Comment

thank you. but not solved my problem yet

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.