मान लें कि मेरे पास 3 डमी सरणी हैं:

const arr1 = [{id: '1a', title: 'abc'}, {id: '2b', title: 'def'}];
const arr2 = [{type: 1, body: 'Hello'}, {type: 2, title: 'Hi}];
const arr3 = [{name: 'Jack', lastname: 'Burton'}, {name: 'David', lastname: 'Lo Pan'}];

जैसे मैंने शीर्षक में व्यक्त करने की कोशिश की, मैं अपने स्वयं के आदेश रखकर उन्हें मर्ज और सॉर्ट करना चाहता हूं, इस तरह:

[{id: '1a', title: 'abc'},{type: 1, body: 'Hello'},{name: 'Jack', lastname: 'Burton'},{id: '2b', title: 'def'},{type: 2, title: 'Hi}, {name: 'David', lastname: 'Lo Pan'}]

मुझे प्रदर्शन और कोड की मात्रा में कोई उचित दृष्टिकोण नहीं मिल रहा है ... कोई सुझाव?

0
JSharles 5 सितंबर 2021, 10:44

3 जवाब

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

आप अपने सभी सरणियों को arrs नामक एक कंटेनर सरणी में रख सकते हैं, और फिर .flatMap() का उपयोग किसी एक सरणी पर कर सकते हैं, जैसे कि पहले, यह आपको अपनी अनुक्रमणिका (0, फिर 1) देगा सरणियाँ फिर आप अपने सभी सरणियों पर मैप करने के लिए एक आंतरिक .map() का उपयोग कर सकते हैं ताकि ऑब्जेक्ट को इंडेक्स से लिया जा सके, आपका बाहरी फ्लैट मैप आपके सभी सरणियों से चालू है:

const arr1 = [{id: '1a', title: 'abc'}, {id: '2b', title: 'def'}];
const arr2 = [{type: 1, body: 'Hello'}, {type: 2, title: 'Hi'}];
const arr3 = [{name: 'Jack', lastname: 'Burton'}, {name: 'David', lastname: 'Lo Pan'}];

const arrs = [arr1, arr2, arr3];
const res = arr1.flatMap((_, i) => arrs.map(arr => arr[i]));
console.log(res);
1
Nick Parsons 5 सितंबर 2021, 08:01
const arr1 = [{id: '1a', title: 'abc'}, {id: '2b', title: 'def'}];
const arr2 = [{type: 1, body: 'Hello'}, {type: 2, title: 'Hi'}];
const arr3 = [{name: 'Jack', lastname: 'Burton'}, {name: 'David', lastname: 'Lo Pan'}];

const res = arr1.flatMap((val, i) => [val, arr2[i], arr3[i]]);
console.log(res);
1
Navnath Jadhav 5 सितंबर 2021, 07:59

आपको पहले मर्ज करना चाहिए, फिर सॉर्ट करना चाहिए।

const arr1 = [
  { id: '1a', title: 'abc' },
  { id: '2b', title: 'def' },
];

const arr2 = [
  { type: 1, body: 'Hello' },
  { type: 2, title: 'Hi' },
];

const arr3 = [
  { name: 'Jack', lastname: 'Burton' },
  { name: 'David', lastname: 'Lo Pan' },
];

const merged = [...arr1, ...arr2, ...arr3];

const sorted = merged.sort();

console.log(sorted);
0
Toumku 5 सितंबर 2021, 07:55