मानचित्र के अंदर सूचकांक () फ़ंक्शन


291

मैं एक विकल्प कैसे अंदर इंडेक्स नंबर प्राप्त करने के लिए याद आ रही है mapका उपयोग करते हुए समारोह Listसे Immutable.js:

var list2 = list1.map(mapper => { a: mapper.a, b: mapper.index??? }).toList();

प्रलेखन से पता चलता है कि map()रिटर्न Iterable<number, M>। क्या मेरी ज़रूरत का कोई सुंदर तरीका है?


1
यह स्पष्ट नहीं है कि आप क्या चाहते हैं।
झटके

यह ध्यान रखें कि mapजो सरणी की संरचना को संरक्षित करने के लिए माना जाता है, केवल उसके मूल्यों को ही नहीं बल्कि सरणी को रूपांतरित किया जाना चाहिए।

जवाबों:


531

आप इसके 2 पैरामीटर के माध्यम से वर्तमान पुनरावृत्ति विधि के indexलिए प्राप्त कर सकेंगे map

उदाहरण:

const list = [ 'h', 'e', 'l', 'l', 'o'];
list.map((currElement, index) => {
  console.log("The current iteration is: " + index);
  console.log("The current element is: " + currElement);
  console.log("\n");
  return currElement; //equivalent to list[index]
});

आउटपुट:

The current iteration is: 0 <br>The current element is: h

The current iteration is: 1 <br>The current element is: e

The current iteration is: 2 <br>The current element is: l

The current iteration is: 3 <br>The current element is: l 

The current iteration is: 4 <br>The current element is: o

इसे भी देखें: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map

पैरामीटर

कॉलबैक - फ़ंक्शन जो नए एरे का एक तत्व पैदा करता है, तीन तर्क ले रहा है:

1) currentValue
वर्तमान तत्व को सरणी में संसाधित किया जा रहा है।

2) सूचकांक
सरणी में संसाधित होने वाले वर्तमान तत्व का सूचकांक।

3) सरणी
सरणी नक्शा पर बुलाया गया था।


क्या मानचित्र के कॉलबैक फ़ंक्शन में हमेशा रिटर्न स्टेटमेंट होना चाहिए? आपके कोड में 'X' का क्या अर्थ है?
हर्षा_K

1
@HarshKanchina mapऑपरेशन किसी दिए गए एरे के तत्वों के माध्यम से पुनरावृत्ति करके एक नई सरणी के निर्माण के लिए उपयोग किया जाता है। आपके प्रश्न का उत्तर देने के लिए, हाँ एक वापसी कथन की आवश्यकता है, और इस मामले के लिए यह प्रत्येक पुनरावृत्ति पर 'X' मान लौटा रहा है। इस प्रकार कोड का अंतिम उत्पाद होगा[ 'X', 'X','X','X' ]
सैमुएल तोह

@ लेकिन 'X' कहीं भी परिभाषित नहीं है। तो इसका क्या जिक्र है? फ़ंक्शन को कैसे पता चलता है कि एक्स यहां क्या दर्शाता है?
हर्ष_क

3
@ हर्षकंचीना 'X'एक तार है।
शमूएल तोह

मैं चाहता हूं कि यह सूचकांक 1 से शुरू हो, मैं इसे कैसे हासिल कर सकता हूं?
रीमा पारख

27

Array.prototype.map() सूचकांक:

एक Array.prototype.map()कॉलबैक फ़ंक्शन के दूसरे तर्क के माध्यम से सूचकांक तक पहुंच सकता है । यहाँ एक उदाहरण है:

const array = [1, 2, 3, 4];


const map = array.map((x, index) => {
  console.log(index);
  return x + index;
});

console.log(map);

अन्य तर्क Array.prototype.map():

  • कॉलबैक फ़ंक्शन का तीसरा तर्क उस सरणी को उजागर करता है जिस पर नक्शा कहा जाता था
  • का दूसरा तर्क Array.map()एक ऑब्जेक्ट है जो thisकॉलबैक फ़ंक्शन के लिए मान होगा । ध्यान रखें कि आपको कॉलबैक घोषित करने के लिए नियमित functionकीवर्ड का उपयोग करना होगा क्योंकि तीर फ़ंक्शन का thisकीवर्ड के लिए स्वयं का बंधन नहीं है ।

उदाहरण के लिए:

const array = [1, 2, 3, 4];

const thisObj = {prop1: 1}


const map = array.map( function (x, index, array) {
  console.log(array);
  console.log(this)
}, thisObj);


2

रामदा का उपयोग करना:

import {addIndex, map} from 'ramda';

const list = [ 'h', 'e', 'l', 'l', 'o'];
const mapIndexed = addIndex(map);
mapIndexed((currElement, index) => {
  console.log("The current iteration is: " + index);
  console.log("The current element is: " + currElement);
  console.log("\n");
  return 'X';
}, list);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.