README
Array Friend
A lightweight dependancy free module to enhance JavaScript's array functionality.
npm i arrayfriend
Creating a New Array
Import the wrapper from the module to use the extended methods without exposing the methods to standard arrays
const $ = require("arrayfriend");
// Wrap array in wrapper
const choices = $(10, 20, 30, 40, 50);
// Access custom array methods
choices.shuffle(); // [30, 50, 10, 40, 20]
To create a new iterable ArrayFriend Array of a set length without specifying the values contained, use the .withLength(n)
method of the ArrayFriend module.
const $ = require("arrayfriend");
// Using .withLength() to create an iterable array with a length of 5
const arr = $.withLength(5); // Expected: [undefined, undefined, undefined, undefined, undefined]
// Able to access standard array methods
// Set each item in the array to a random value between 1 and 3
const randomValues = arr.map(() => Math.floor(Math.random() * 3) + 1);
console.log(randomValues); // Example: [ 3, 1, 2, 1, 2 ]
// Also able to access ArrayFriend methods
randomValues.countOf(1); // Expected: 2
Extending Prototypes
Optionally, invoke the .protos()
method to expose all arrays to the extended methods.
require("arrayfriend").protos();
const choices = [10, 20, 30, 40, 50];
// Access custom array methods
choices.shuffle(); // [30, 50, 10, 40, 20]
Chaining
All ArrayFriend methods that return arrays will return a new instance of Arrayfriend, so standard JS Array methods, as well as ArrayFriend methods can be chained.
require("arrayfriend").protos();
const grades = ["80", "60", "76", "100", "58", "96", "92", "62", "78", "84"];
const sortedPassingGrades = grades
.toNum() // ARRAYFRIEND METHOD
.filter((score) => score > 72) // STANDARD ARRAY METHOD
.descending(); // ARRAYFRIEND METHOD
console.log(sortedPassingGrades); // Expected: [100, 96, 92, 84, 80, 78, 76]
ArrayFriend Methods
Useful Methods
Duplicate Management
Copies
Random
Counts
Sorting
Querying
Math
Type Management
Filtering
Comparing
Conversion
Shuffle
.shuffle()
will randomize the order of an array using the Fisher–Yates shuffle Algorithm
Example
ArrayFriend Wrapper
const $ = require("arrayfriend");
const options = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const unshuffled = $(...options); // Use the spread operator to pass in an existing array
const shuffled = unshuffled.shuffle(); // Expected: array in randomized order, like [8,3,4,2,10,5,1,9,6,7]
Extending Prototype
require("arrayfriend").protos();
const unshuffled = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const shuffled = unshuffled.shuffle(); // Expected: array in randomized order, like [8,3,4,2,10,5,1,9,6,7]
Remove Duplicates
.removeDuplicates()
will remove duplicate items from an array
Example
ArrayFriend Wrapper
const $ = require("arrayfriend");
const users = $("Justin", "Justin", "Jack", "Amanda", "Mary", "Amanda"); // Pass values directly into the wrapper
const uniqueUsers = users.removeDuplicates(); // Expected: ["Justin", "Jack", "Amanda", "Mary"]
Extending Prototype
require("arrayfriend").protos();
const users = ["Justin", "Justin", "Jack", "Amanda", "Mary", "Amanda"];
const uniqueUsers = users.removeDuplicates(); // Expected: ["Justin", "Jack", "Amanda", "Mary"]
Only Duplicates
.onlyDuplicates()
filters an array to include only items whose values appear more than once in the array.
Example
ArrayFriend Wrapper
const $ = require("arrayfriend");
const logins = $("Justin", "Justin", "Jack", "Amanda", "Mary", "Amanda");
const duplicateLogins = logins.onlyDuplicates(); // Expected: ["Justin", "Amanda"]
Extending Prototype
require("arrayfriend").protos();
const logins = ["Justin", "Justin", "Jack", "Amanda", "Mary", "Amanda"];
const duplicateLogins = logins.onlyDuplicates(); // Expected: ["Justin", "Amanda"]
Batch
.batch(limit)
will batch an array's elements into several nested arrays of a specified length.
Parameters
limit
(Integer) - Length of batch
Example
ArrayFriend Wrapper
const $ = require("arrayfriend");
const unbatched = ["Justin", "Amanda", "Mary", "Kelly", "Jonathan", "Tom"];
const batched = $(...unbatched).batch(2); // Expected: [["Justin", "Amanda"], [ "Mary", "Kelly"], ["Jonathan", "Tom"]]
Extending Prototype
require("arrayfriend").protos();
const unbatched = ["Justin", "Amanda", "Mary", "Kelly", "Jonathan", "Tom"];
const batched = unbatched.batch(2); // Expected: [["Justin", "Amanda"], [ "Mary", "Kelly"], ["Jonathan", "Tom"]]
Copy
.copy()
will create a Shallow Copy of an array
Example
ArrayFriend Wrapper
const $ = require("arrayfriend");
const words = $("foo", "bar", "baz");
const wordsCopy = words.copy(); // Expected: ["foo", "bar", "baz"]
Extending Prototype
require("arrayfriend").protos();
const words = ["foo", "bar", "baz"];
const wordsCopy = words.copy(); // Expected: ["foo", "bar", "baz"]
Deep Copy
.deepCopy()
will make a Deep Copy of an array. This means objects or nested arrays will be replaced with replicated values, without referencing the original array. Changes can be made of the copied array without changing the original array.
Example
ArrayFriend Wrapper
const $ = require("arrayfriend");
const original = $(
{ foo: "bar", foobar: ["foo", "bar"] },
{ bar: "foo", barfoo: ["bar", "foo"] },
{ foobar: ["foo", "bar"] },
30,
20,
"Why does this array have so many types",
Symbol(),
"Oh yeah, to show you how to it can make a deep copy of any type"
);
const copied = original.deepCopy(); // Makes a deep copy
// Object reference comparison
copied[0].foo = "baz";
console.log(original[0].foo === copied[0].foo); // Expected: false
Extending Prototype
require("arrayfriend").protos();
const original = [
{ foo: "bar", foobar: ["foo", "bar"] },
{ bar: "foo", barfoo: ["bar", "foo"] },
{ foobar: ["foo", "bar"] },
30,
20,
"Why does this array have so many types",
Symbol(),
"Oh yeah, to show you how to it can make a deep copy of any type",
];
const copied = original.deepCopy(); // Makes a deep copy
// Object reference comparison
copied[0].foo = "baz";
console.log(original[0].foo === copied[0].foo); // Expected: false
Random
.random()
will return a random item in the array
Example
ArrayFriend Wrapper
const $ = require("arrayfriend");
const words = $("foo", "bar", "baz");
words.random(); // Expected Example: "bar"
Extending Prototype
require("arrayfriend").protos();
const words = ["foo", "bar", "baz"];
words.random(); // Expected Example: "bar"
Random Index
.randomIndex()
returns a random index in the array
Example
ArrayFriend Wrapper
const $ = require("arrayfriend");
const words = $("foo", "bar", "baz");
words.randomIndex(); // Expected Example: 2
Extending Prototype
require("arrayfriend").protos();
const words = ["foo", "bar", "baz"];
words.randomIndex(); // Expected Example: 2
Count Of
.countOf(val)
will return a count of all items in an array matching a specified value.
Parameters
val
(any) - Value to match
Example
ArrayFriend Wrapper
const $ = require("arrayfriend");
const words = $("foo", "bar", "foo", "foo", "baz");
const fooCount = words.countOf("foo"); // Expected: 3
Extending Prototype
require("arrayfriend").protos();
const words = ["foo", "bar", "foo", "foo", "baz"];
const fooCount = words.countOf("foo"); // Expected: 3
Count If
.countIf(condition)
will return a count of all items in an array that when passed into a callback function, return true
Parameters
condition
(Function) - Callback function. For checking condition, takes in 3 parametersitem
- (any) Item in the arrayindex
- Optional (Integer) - Current index in the arrayarr
- Optional (Array) - Current array
Example
ArrayFriend Wrapper
const $ = require("arrayfriend");
const grades = $(99, 93, 60, 70, 100, 80, 78, 100, 98, 94);
const over90 = grades.countIf((grade) => grade >= 90); // Expected: 6
Extending Prototype
require("arrayfriend").protos();
const grades = [99, 93, 60, 70, 100, 80, 78, 100, 98, 94];
const over90 = grades.countIf((grade) => grade >= 90); // Expected: 6
Last
.last()
returns the last item in the array
Example
ArrayFriend Wrapper
const $ = require("arrayfriend");
const users = $("Jack", "Jill", "Bob", "Joe");
const lastUser = users.last(); // Expected: Joe
Extending Prototype
require("arrayfriend").protos();
const users = ["Jack", "Jill", "Bob", "Joe"];
const lastUser = users.last(); // Expected: Joe
Ascending
.ascending()
sorts the array in ascending order
Example
ArrayFriend Wrapper
const $ = require("arrayfriend");
const grades = $(99, 93, 60, 70, 100, 80, 78, 100, 98, 94);
const worstToBest = grades.ascending(); // Expected: [60, 70, 78, 80, 93,94, 98, 99, 100, 100]
Extending Prototype
require("arrayfriend").protos();
const grades = [99, 93, 60, 70, 100, 80, 78, 100, 98, 94];
const worstToBest = grades.ascending(); // Expected: [60, 70, 78, 80, 93,94, 98, 99, 100, 100]
Descending
.descending()
sorts the array in descending order
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const grades = $(99, 93, 60, 70, 100, 80, 78, 100, 98, 94);
const bestToWorst = grades.descending(); // Expected: [100, 100, 99, 98, 94, 93, 80, 78, 70, 60]
Extending Prototype
require("arrayfriend").protos();
const grades = [99, 93, 60, 70, 100, 80, 78, 100, 98, 94];
const bestToWorst = grades.descending(); // Expected: [100, 100, 99, 98, 94, 93, 80, 78, 70, 60]
Is Empty
.isEmpty()
is a simple method that returns true if the specified array's length is 0.
Example
ArrayFriend Wrapper
const $ = require("arrayfriend");
const arr1 = $();
const arr2 = $("foo", "bar", "baz");
console.log(arr1.isEmpty()); // Expected: true
console.log(arr2.isEmpty()); // Expected: false
arr1.push("foobar");
console.log(arr1.isEmpty()); // Expected: false
Extending Prototype
require("arrayfriend").protos();
const arr1 = [];
const arr2 = ["foo", "bar", "baz"];
console.log(arr1.isEmpty()); // Expected: true
console.log(arr2.isEmpty()); // Expected: false
Partial Match
.partialMatch(obj)
finds the first item matching the key/value pairs of the object passed in.
Parameters
obj
(Object) - Object containing key/value pairs of array item to find
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const users = $(
{
firstName: "Jon",
lastName: "Smith",
email: "jon.smith@gmail.com",
},
{
firstName: "Jane",
lastName: "Doe",
email: "jdoe@ymail.com",
},
{
firstName: "Elon",
lastName: "Musk",
email: "elon@tesla.com",
}
);
const person = users.partialMatch({ email: "jdoe@ymail.com" });
// Expected:
// {
// firstName: "Jane",
// lastName: "Doe",
// email: "jdoe@ymail.com",
// },
Extending Prototype
require("arrayfriend").protos();
const users = [
{
firstName: "Jon",
lastName: "Smith",
email: "jon.smith@gmail.com",
},
{
firstName: "Jane",
lastName: "Doe",
email: "jdoe@ymail.com",
},
{
firstName: "Elon",
lastName: "Musk",
email: "elon@tesla.com",
},
];
const person = users.partialMatch({ email: "jdoe@ymail.com" });
// Expected:
// {
// firstName: "Jane",
// lastName: "Doe",
// email: "jdoe@ymail.com",
// },
Partial Match Index
.partialMatch(obj)
finds the first index matching the key/value pairs of the object passed in.
Parameters
obj
(Object) - Object containing key/value pairs of array item to find
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const users = $(
{
firstName: "Jon",
lastName: "Smith",
email: "jon.smith@gmail.com",
},
{
firstName: "Jane",
lastName: "Doe",
email: "jdoe@ymail.com",
},
{
firstName: "Elon",
lastName: "Musk",
email: "elon@tesla.com",
}
);
const person = users.partialMatchIndex({ email: "jdoe@ymail.com" }); // Expected: 1
Extending Prototype
require("arrayfriend").protos();
const users = [
{
firstName: "Jon",
lastName: "Smith",
email: "jon.smith@gmail.com",
},
{
firstName: "Jane",
lastName: "Doe",
email: "jdoe@ymail.com",
},
{
firstName: "Elon",
lastName: "Musk",
email: "elon@tesla.com",
},
];
const person = users.partialMatchIndex({ email: "jdoe@ymail.com" }); // Expected: 1
Remove Null Values
.removeNullValues()
will remove any null
, undefined
, empty string values from the array. Note: This does not remove any false
or NaN
values
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const arr1 = [3, 4, "foo", "bar", null, "baz", false, "foobar", NaN, undefined, ""];
const cleaned = $(...arr1).removeNullValues(); // Expected: [ 3, 4, 'foo', 'bar', 'baz', false, 'foobar', NaN ]
Extending Prototype
require("arrayfriend").protos();
const arr1 = [3, 4, "foo", "bar", null, "baz", false, "foobar", NaN, undefined, ""];
const cleaned = arr1.removeNullValues(); // Expected: [ 3, 4, 'foo', 'bar', 'baz', false, 'foobar', NaN ]
Remove Falsy Values
.removeFalsyValues()
will remove any falsy values from the array
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const arr1 = [3, 4, "foo", "bar", null, "baz", false, "foobar", NaN, undefined, ""];
const cleaned = $(...arr1).removeFalsyValues(); // Expected: [ 3, 4, 'foo', 'bar', 'baz', 'foobar']
Extending Prototype
require("arrayfriend").protos();
const arr1 = [3, 4, "foo", "bar", null, "baz", false, "foobar", NaN, undefined, ""];
const cleaned = arr1.removeFalsyValues(); // Expected: [ 3, 4, 'foo', 'bar', 'baz', 'foobar']
Insert At
.insertAt()
inserts item(s) after a specified index in array.
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const users = $("Jon", "Jack", "Jill");
users.insertAt(1, "Justin", "Joe"); // Expected: ['Jon', 'Jack', 'Justin', 'Joe', 'Jill']
Extending Prototype
require("arrayfriend").protos();
const users = ["Jon", "Jack", "Jill"];
users.insertAt(1, "Justin", "Joe"); // Expected: ['Jon', 'Jack', 'Justin', 'Joe', 'Jill']
Sum
.sum()
returns the sum of all items in a numerical array.
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const nums = $(10, 20, 30);
nums.sum(); // Expected: 60
Extending Prototype
require("arrayfriend").protos();
const nums = [10, 20, 30];
nums.sum(); // Expected: 60
Difference
.difference()
returns the difference of all items in a numerical array.
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const nums = $(10, 20, 30);
nums.difference(); // Expected: -40
Extending Prototype
require("arrayfriend").protos();
const nums = [10, 20, 30];
nums.difference(); // Expected: -40
Product
.product()
returns the product of all items in a numerical array.
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const nums = $(10, 20, 30);
nums.product(); // Expected: 6000
Extending Prototype
require("arrayfriend").protos();
const nums = [10, 20, 30];
nums.product(); // Expected: 6000
Quotient
.quotient()
returns the quotient of all items in a numerical array.
ArrayFriend Wrapper
const $ = require("arrayfriend");
const nums = $(10, 20, 30);
nums.quotient(); // Expected: 0.016666666666666666
Extending Prototype
require("arrayfriend").protos();
const nums = [10, 20, 30];
nums.quotient(); // Expected: 0.016666666666666666
Mean
.mean()
returns the average for an array. Note: This will return NaN if all items in an array are not numbers
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const projectGrades = $(90, 100, 80, 100, 100);
const averageGrage = projectGrades.average(); // Expected: 94
Extending Prototype
require("arrayfriend").protos();
const projectGrades = [90, 100, 80, 100, 100];
const averageGrage = projectGrades.average(); // Expected: 94
Average
.average()
is an alternate term for .mean()
Median
.median()
returns the median of all items in the array
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const nums = $(10, 20, 30, 50, 100);
nums.median(); // Expected: 30
Extending Prototype
require("arrayfriend").protos();
const nums = [10, 20, 30, 50, 100];
nums.median(); // Expected: 30
Mode
.mode()
returns the mode of the array
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const nums = $(10, 20, 30, 50, 100);
nums.mode(); // Expected: 20
Extending Prototype
require("arrayfriend").protos();
const nums = [10, 20, 20, 30, 50, 100];
nums.mode(); // Expected: 20
Replace
.replace()
replaces all occurances of a specified value with a new value.
Parameters
oldVal
(Any) - Value to replacenewVal
(Any) - Replacement value
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const arr = $("foo", "bar", "foobar", "bar", "foo");
const noFoo = arr.replace("foo", "baz"); // Expected: ["baz", "bar", "foobar", "bar", "baz"]
Extending Prototype
require("arrayfriend").protos();
const arr = ["foo", "bar", "foobar", "bar", "foo"];
const noFoo = arr.replace("foo", "baz"); // Expected: ["baz", "bar", "foobar", "bar", "baz"]
Filter Type
.filterType()
filters an array to only a specified type
Parameters
type
(String) - String representing JS type
Possible Types
"string"
"number"
"boolean"
"undefined"
"symbol"
"function"
"object"
- Returns all JS object types (objects, arrays, functions, null)"array"
- Returns only nested arrays"null"
- Returns onlynull
values"objectOnly"
- Returns only objects without returning arrays
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const arr = [1, 4, "t", ["nested", 8], { foo: "bar" }, { baz: false }, [1, 2, 3], true, ""];
const mixed = $(...arr); // Spread syntax can be used to convert an existing array
// Only strings
const strOnly = mixed.filterType("string"); // Expected: ["t", ""]
// Only arrays
const nestedArrsOnly = mixed.filterType("array"); // [["nested", 8], [1,2,3]]
Extending Prototype
require("arrayfriend").protos();
const mixed = [1, 4, "t", ["nested", 8], { foo: "bar" }, { baz: false }, [1, 2, 3], true, ""];
// Only strings
const strOnly = mixed.filterType("string"); // Expected: ["t", ""]
// Only arrays
const nestedArrsOnly = mixed.filterType("array"); // [["nested", 8], [1,2,3]]
Types
.types()
returns an array of the target array's types.
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const mixed = $(1, 4, "t", true, "");
const types = mixed.types(); // Expected: ["number", "number", "string", "boolean", "string"]
Extending Prototype
require("arrayfriend").protos();
const mixed = $(1, 4, "t", true, "");
const types = mixed.types(); // Expected: ["number", "number", "string", "boolean", "string"]
To Str
.toStr()
returns an array of a string version of all the items in the array. Note: Conversion is different depending on type. For example, objects and arrays will be returned stringified.
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const arr = [1, 4, "t", ["nested", 8], { foo: "bar" }, { baz: false }, [1, 2, 3], true];
const mixed = $(...arr); // Spread syntax can be used to convert an existing array
const strArr = mixed.toStr(); // ['1','4','t','["nested",8]','{"foo":"bar"}','{"baz":false}','[1,2,3]','true']
Extending Prototype
require("arrayfriend").protos();
const mixed = [1, 4, "t", ["nested", 8], { foo: "bar" }, { baz: false }, [1, 2, 3], true];
const strArr = mixed.toStr(); // ['1','4','t','["nested",8]','{"foo":"bar"}','{"baz":false}','[1,2,3]','true']
To Num
.toNum()
returns a new array with all items converted to numbers.
Parameters
base
- Base to parse numbers to. (Defaults to 10)
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const arr = ["1", 4, "3.2", "7", "19", 0];
$(...arr).toNum(); // Expected: [1, 4, 3.2, 7, 19, 0]
Extending Prototype
require("arrayfriend").protos();
const arr = ["1", 4, "3.2", "7", "19", 0];
arr.toNum(); // Expected: [1, 4, 3.2, 7, 19, 0]
Even Indexes
.evenIndexes()
returns only the even index items in an array
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const arr = ["foo", "bar", "baz", "foobar"];
$(...arr).evenIndexes(); // Expected: ["foo", "baz"]
Extending Prototype
require("arrayfriend").protos();
const arr = ["foo", "bar", "baz", "foobar"];
arr.evenIndexes(); // Expected: ["foo", "baz"]
Odd Indexes
.oddIndexes()
returns only the odd index items in an array
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const arr = ["foo", "bar", "baz", "foobar"];
$(...arr).oddIndexes(); // Expected: ["bar", "foobar"]
Extending Prototype
require("arrayfriend").protos();
const arr = ["foo", "bar", "baz", "foobar"];
arr.oddIndexes(); // Expected: ["bar", "foobar"]
Assert
.assert()
does a deep compare on an array with any target array - Returning a boolean of if all values and nested values matched.
Examples
ArrayFriend Wrapper
const $ = require("arrayfriend");
const a1 = [{ foo: "bar", bar: 4, baz: false }, [4, 3, 2, 1], "f", 0, true, "i"];
const a2 = [{ foo: "bar", bar: 4, baz: false }, [4, 3, 2, 1], "f", 0, true, "i"];
$(...a1).assert(a2); // Expected: true
const a3 = [{ foo: "baz", bar: 4, baz: false, t: 4 }, [4, 3, 2, 1], "j", 1, true, "i"];
const a4 = [{ foo: "bar", bar: 4, baz: false }, [4, 3, 2, 1], "f", 0, true, "i"];
$(...a3).assert(a4); // Expected: false
Extending Prototype
const $ = require("arrayfriend").protos();
const a1 = [{ foo: "bar", bar: 4, baz: false }, [4, 3, 2, 1], "f", 0, true, "i"];
const a2 = [{ foo: "bar", bar: 4, baz: false }, [4, 3, 2, 1], "f", 0, true, "i"];
a1.assert(a2); // Expected: true
const a3 = [{ foo: "baz", bar: 4, baz: false, t: 4 }, [4, 3, 2, 1], "j", 1, true, "i"];
const a4 = [{ foo: "bar", bar: 4, baz: false }, [4, 3, 2, 1], "f", 0, true, "i"];
a3.assert(a4); // Expected: false
To Object
.toObject()
converts an array to an object, with specified keys and values for each item
Parameters
cb
- OPTIONAL - Callback function called for each item in the array. Must return an object with akey
key and avalue
key Note: Callback function is optional. It is not needed if every item in the array is an object with akey
key andvalue
key. Callback Parameters- Array item
- Item Index
- Array
Examples
ArrayFriend Wrapper
Example 1: With Callback Function
const $ = require("arrayfriend");
const data = [
{ id: "abc123", score: 97 },
{ id: "def456", score: 82 },
{ id: "hij789", score: 90 },
{ id: "klm012", score: 78 },
];
// Expected: { abc123: 97, def456: 82, hij789: 90, klm012: 78 }
const scores = $(...data).toObject((item) => ({ key: item.id, value: item.score }));
Example 2: Without Callback Function
const $ = require("arrayfriend");
// If array is already in [{ key, value }] format
// No callback function is required to convert to an object
const houseAttributes = [
{ key: "sqFt", value: 2000 },
{ key: "yearBuilt", value: 1998 },
{ key: "bedrooms", value: 4 },
{ key: "bathrooms", value: 2.5 },
];
// Expected: { sqFt: 2000, yearBuilt: 1998, bedrooms: 4, bathrooms: 2.5 }
const home = $(...houseAttributes).toObject();
Extending Prototype
Example 1: With Callback Function
const $ = require("arrayfriend").protos();
const data = [
{ id: "abc123", score: 97 },
{ id: "def456", score: 82 },
{ id: "hij789", score: 90 },
{ id: "klm012", score: 78 },
];
// Expected: { abc123: 97, def456: 82, hij789: 90, klm012: 78 }
const scores = data.toObject((item) => ({ key: item.id, value: item.score }));
Example 2: Without Callback Function
const $ = require("arrayfriend");
// If array is already in [{ key, value }] format
// No callback function is required to convert to an object
const houseAttributes = [
{ key: "sqFt", value: 2000 },
{ key: "yearBuilt", value: 1998 },
{ key: "bedrooms", value: 4 },
{ key: "bathrooms", value: 2.5 },
];
// Expected: { sqFt: 2000, yearBuilt: 1998, bedrooms: 4, bathrooms: 2.5 }
const home = houseAttributes.toObject();