मान लीजिए हमारे पास निम्नलिखित जैसी सरणी है:
const arr = [ [1, 2, 3, 4], [12, 13, 14, 5], [11, 16, 15, 6], [10, 9, 8, 7] ];
सरणी एक वर्ग मैट्रिक्स होगी।
हमें एक JavaScript फ़ंक्शन लिखना है जो इस सरणी को लेता है और तत्वों को लेते हुए केंद्र की ओर सर्पिल करते हुए एक नई सरणी बनाता है। एक स्नेल ट्रेल मैट्रिक्स के बाहर से अंदर की ओर सर्पिल करता है।
उपरोक्त सरणी के लिए आउटपुट होना चाहिए:
const output = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
हम इस समस्या को पुनरावृत्ति का उपयोग करके हल करेंगे।
उदाहरण
निम्नलिखित कोड देखें:
const arr = [
[1, 2, 3, 4],
[12, 13, 14, 5],
[11, 16, 15, 6],
[10, 9, 8, 7]
];
const spiralForm = arr => {
return arr.length > 1 ?
arr.splice(0, 1)[0]
.concat(spiralForm(arr[0].map((c, i) => {
return arr.map(r => r[i]);
})
.reverse())) :
arr[0];
};
console.log(spiralForm(arr));
आउटपुट
यह कंसोल पर निम्नलिखित आउटपुट देगा:
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]