Creates a new object with the returned keys and values of calling a provided function on every element in the calling array.
npm install array-map-to-objectLike map(), but creates object keys and values instead of array. mapToObject creates a new object with the returned keys and values of calling a provided function on every element in the calling array.
Published as .js, .mjs, umd.js including type definitions for TypeScript.
``ts`
const newObject = mapToObject(array, (currentValue[, index[, array]]) => {
// Return key for object item
// or [key, value] tuple (array) for key and value
// or { key, value } object for key and value
}, [, thisArg]);
`ts`
import mapToObject from "array-map-to-object";
`ts`
const users = [
{ name: "George", basketSize: 3 },
{ name: "Lisa", basketSize: 2 },
];
const usersLookup = mapToObject(users, "name");
// { George: { name: "George", basketSize: 3 }, Lisa: { name: "Lisa", basketSize: 2 } }
`tsusersLookup
const users = [
{ name: "George", basketSize: 3 },
{ name: "Lisa", basketSize: 2 },
];
const usersLookup = mapToObject(users, (user) => user.name);
// Callback returns only key, value is same item. is:`
// { George: { name: "George", basketSize: 3 }, Lisa: { name: "Lisa", basketSize: 2 } }
`tsusersLookup
const users = [
{ name: "George", basketSize: 3 },
{ name: "Lisa", basketSize: 2 },
];
const usersLookup = mapToObject(users, (user) => [user.name, user.basketSize]);
// Callback returns [key, value] tuple (array). First returned value used for key, second for value. is:`
// { George: 3, Lisa: 2 }
`tsusersLookup
const users = [
{ name: "George", basketSize: 3 },
{ name: "Lisa", basketSize: 2 },
];
const usersLookup = mapToObject(users, (user) => ({ key: user.name, value: user.basketSize }));
// Callback returns { key, value } object. is:`
// { George: 3, Lisa: 2 }
`tsroots
const numbers = [1, 4, 9];
const roots = mapToObject(numbers, (num) => [num, Math.sqrt(num)]);
// is { 1: 1, 4: 2, 9: 3 }``