Company logo
  • Jobs
  • Bootcamp
  • About Us
  • For professionals
    • Home
    • Jobs
    • Courses
    • Questions
    • Teachers
    • Bootcamp
  • For business
    • Home
    • Our process
    • Plans
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Calculator

0

66
Views
How to push all the objects inside an array

It will give data by checking for each variant inside the variant array, it show all the object if the condition matched or undefined if not, but in this particular code, it is creating a new array for each item, something like this :- [{id: 'something'}] [{id: 'something'}] [{id: 'something'}] [{id: 'something'}] I want it to have all the result inside one array:-

[
  {id: 'something'},
  {id: 'something'},
  {id: 'something'},
  {id: 'something'}
]
const mynewarr = [];
const myimages = product_details.data.product.images;
      
      for(var i = 0; i < product_details.data.product.variants.length; i++) {
        const myvari = product_details.data.product.variants[i].image_id;
        const real = myimages.find(imageid => imageid.id == myvari);
        mynewarr.push(real);
        }
7 months ago · Santiago Trujillo
3 answers
Answer question

0

Just use a destructuring assignment to "unpack" the array before the push.

mynewarr.push(...real);
7 months ago · Santiago Trujillo Report

0

If I understand correctly you need to go:

const newArray = product_details.data.product.variants.map((variant) => variant.image_id === 'your_condition' ? { id: variant.image_id } : undefined)

The newArray will contain an array of objects with the ids.

7 months ago · Santiago Trujillo Report

0

Since your myimages is an array of array, you can push the object by accessing the 0th index of the filtered item(using .find). If there's a possibility that the .find method might return undefined you can add a conditional check to push only the found items. You can update your code to something like the below.

      const mynewarr = [];
      const myimages = product_details.data.product.images;
      
      for(var i = 0; i < product_details.data.product.variants.length; i++){
        const myvari = product_details.data.product.variants[i].image_id;
        const real = myimages.find(imageid => imageid.id === myvari) 
        if(real){
         mynewarr.push(real[0]); //Add only the object and not the sub array.
       }
      }
7 months ago · Santiago Trujillo Report
Answer question
Find remote jobs