<!-- JSJGFV7 --> <!-- arrays --> ### Q. Can you convert an Array to object in javascript? _**Intent of the interview:** To assess the candidate's knowledge of manipulating data structures in JavaScript._ **Answer:** Yes, there are several ways to convert an array into an object in JavaScript. You can use the `reduce()` array method. This method iterates over the array and builds an object with keys and values. ```js const arrayToConvert = ["red", "green", "blue"]; const convertedObject = arrayToConvert.reduce((obj, item, index) => { obj[index] = item; return obj; }, {}); console.log(convertedObject); ``` result: ```js { 0: "red" 1: "green" 2: "blue" } ``` In this object, the array indexes become the object keys, and the array values become the object values. <details> <summary>More Info</summary> <br/> Here are a few more methods: 1. **Using the `Object.assign()` method:** This is another direct way to convert an array into an object, where indices become keys. ```js let arr = ["red", "green", "blue"]; let obj = Object.assign({}, arr); ``` result: ```js { 0: "red" 1: "green" 2: "blue" } ``` 2. **Using a `for` loop:** Iterate over the array and set properties manually. ```js let arr = ["red", "green", "blue"]; let obj = {}; for (let i = 0; i < arr.length; i++) { obj[i] = arr[i]; } ``` result: ```js { 0: "red" 1: "green" 2: "blue" } ``` 3. **Using `Array.prototype.forEach` method:** This is a more declarative approach compared to the traditional `for` loop. ```js let arr = ["red", "green", "blue"]; let obj = {}; arr.forEach((value, index) => { obj[index] = value; }); ``` result: ```js { 0: "red" 1: "green" 2: "blue" } ``` 4. **Using `Map` with `Object.fromEntries`:** Convert the array into a map of key-value pairs and then use `Object.fromEntries` to generate an object. ```js let arr = ["red", "green", "blue"]; let map = new Map(arr.map((value, index) => [index.toString(), value])); let obj = Object.fromEntries(map); ``` result: ```js { 0: "red" 1: "green" 2: "blue" } ``` Depending on the specific requirements, one can choose the method that fits best. Some methods are more readable, while others are more concise. </details> ---- #### NXT MOCK CONTENT ---- #### QUESTIONS @QUESTION_KEY: 1 @QUESTION_ID: 8a7b9c1d-57aa-4d9d-8d8a-5f9b9c4a9a64 @QUESTION_TYPE: MULTIPLE_CHOICE @QUESTION: What is the output of the following code? ```js const arrayToConvert = ["red", "green", "blue"]; const convertedObject = arrayToConvert.reduce((obj, item, index) => { obj[index] = item; return obj; }, {}); console.log(convertedObject); ``` @QUESTION_CONTENT_TYPE: MARKDOWN @OPTION1: ```js { 0: "red" 1: "green" 2: "blue" } ``` @OPTION2: ```js { "red": "0", "green": "1", "blue": "2" } ``` @OPTION3: ```js { 'red': 'red', 'green': 'green', 'blue': 'blue' } ``` @OPTION4: ```js { "0": "0", "1": "1", "2": "2" } ``` @CORRECT_OPTIONS: OPTION1 @TAG_NAMES: arrays ---END @QUESTION_KEY: 2 @QUESTION_ID: 9b7c9d1e-58bb-4d9e-8d9b-6f9c9e4a9a75 @QUESTION_TYPE: MULTIPLE_CHOICE @QUESTION: What will the value of `convertedObject[1]` be after the code is executed? ```js const arrayToConvert = ["red", "green", "blue"]; const convertedObject = arrayToConvert.reduce((obj, item, index) => { obj[index] = item; return obj; }, {}); ``` @QUESTION_CONTENT_TYPE: MARKDOWN @OPTION1: "red" @OPTION2: "green" @OPTION3: "blue" @OPTION4: Undefined @CORRECT_OPTIONS: OPTION2 @TAG_NAMES: arrays ---END @QUESTION_KEY: 3 @QUESTION_ID: 9b7c9d1e-58bb-4d9e-8d9b-6f9c9e4a9a75 @QUESTION_TYPE: MULTIPLE_CHOICE @QUESTION: What does the reduce method do in the provided code? ```js const arrayToConvert = ["red", "green", "blue"]; const convertedObject = arrayToConvert.reduce((obj, item, index) => { obj[index] = item; return obj; }, {}); ``` @QUESTION_CONTENT_TYPE: MARKDOWN @OPTION1: It filters the array. @OPTION2: It sorts the array. @OPTION3: It converts the array to a string. @OPTION4: It converts the array to an object. @CORRECT_OPTIONS: OPTION4 @TAG_NAMES: arrays ---END @QUESTION_KEY: 4 @QUESTION_ID: 10c8d1f-59cc-4d9f-8d9c-7f9d9f4a9a86 @QUESTION_TYPE: MULTIPLE_CHOICE @QUESTION: Which of the following codes will convert the array ["apple", "banana", "cherry"] to an object where the keys are the array values and the values are their lengths? @QUESTION_CONTENT_TYPE: MARKDOWN @OPTION1: ```js ["apple", "banana", "cherry"].reduce((obj, item) => { obj[item] = item.length; return obj; }, {}); ``` @OPTION2: ```js ["apple", "banana", "cherry"].map((item) => { return { item: item.length }; }); ``` @OPTION3: ```js ["apple", "banana", "cherry"].forEach((item) => { return { item: item.length }; }); ``` @OPTION4: ```js ["apple", "banana", "cherry"].filter((item) => { return { item: item.length }; }); ``` @CORRECT_OPTIONS: OPTION1 @TAG_NAMES: arrays ---END @QUESTION_KEY: 5 @QUESTION_ID: 7e292647-9e47-41d5-b70b-5b828d4a08fd @QUESTION_TYPE: MORE_THAN_ONE_MULTIPLE_CHOICE @QUESTION: Which code will give the required result if you want to convert the array `["cat", "dog"]` into an object with keys as the string values and values as the string lengths? @QUESTION_CONTENT_TYPE: MARKDOWN @OPTION1: ```js ["cat", "dog"].reduce((obj, item) => { obj[item] = item.length; return obj; }, {}); ``` @OPTION2: ```js ["cat", "dog"].map((item) => { return { [item]: item.length }; }); ``` @OPTION3: ```js ["cat", "dog"].forEach((item) => { return { [item]: item.length }; }); ``` @OPTION4: ```js ["cat", "dog"].filter((item) => { return { [item]: item.length }; }); ``` @CORRECT_OPTIONS: OPTION1 @TAG_NAMES: arrays ---END