मैं सीख रहा हूं कि जेएस सरणी को कैसे संभालना है और मैं सोच रहा था कि मौजूदा ऑब्जेक्ट की विशेषता को विभाजित करके नई सरणी-ऑब्जेक्ट बनाना संभव है या नहीं।

मैंने .map और .flatMap के साथ ऐसा करने की कोशिश की, लेकिन आउटपुट मुझे उन वस्तुओं के संयोजन देता है जो अन्य मूल्यों को दोहराते हैं, जबकि मैं अद्वितीय वस्तुओं की तलाश में हूं

मुझे लगता है कि कोड अधिक स्पष्ट हो सकता है:

const array=[ 
    { names:['something1', 'something2'],
      state:false,
      features:['feature1','feature2']
    },
    { names:['something3', 'something4'],
      state:true,
      features:['feature3','feature4']
    },
  ]

  array.flatMap(({names,state,features}) => {
    names.flatMap(name => {
      features.flatMap(feature => {
        console.log(({name,state,feature}));
      })
    })
  })

तो, इस कोड के साथ आउटपुट है:

{ name: 'something1', state: false, feature: 'feature1' }
{ name: 'something1', state: false, feature: 'feature2' }
{ name: 'something2', state: false, feature: 'feature1' }
{ name: 'something2', state: false, feature: 'feature2' }
{ name: 'something3', state: true, feature: 'feature3' }
{ name: 'something3', state: true, feature: 'feature4' }
{ name: 'something4', state: true, feature: 'feature3' }
{ name: 'something4', state: true, feature: 'feature4' }

लेकिन मैं चाहता हूं कि आउटपुट हो:

{ name: 'something1', state: false, feature: 'feature1' },
{ name: 'something2', state: false, feature: 'feature2' },
{ name: 'something3', state: true, feature: 'feature3' },
{ name: 'something4', state: true, feature: 'feature4' }

मैं कोडिंग में नौसिखिया हूं, क्षमा करें यदि मेरे शब्द इस समस्या का वर्णन करने में ठीक से सही नहीं हैं। आपके धैर्य के लिए धन्यवाद

1
Drun 19 पद 2019, 04:04

1 उत्तर

सबसे बढ़िया उत्तर

यहाँ तुम जाओ, पिछले एक पर थोड़ा सा संपादन। बस नाम नक्शा।

const arr = [{
  names: ["test1", "test2"],
  values: ["t1", "t2"]
},
{
  names: ["test3", "test4"],
  values: ["t3", "t4"]
}];

const flat = arr.reduce((a, {names, values}) => {
   names.map((name, i) => {   
     a.push({ name, value: values[i]});
  });
  return a;
}, []).flat();

console.log(`Flat: ${JSON.stringify(flat)}`);
1
Bibberty 19 पद 2019, 01:28