Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose a JavaScript array method by the result you need: use map() to transform every element, filter() to keep every match, find() to get the first match, includes() or some() to check for a match, and reduce() to accumulate a result. For sorting, remember that sort() changes the original array; toSorted() returns a sorted copy.

Choose an array method by the result you need

First decide whether your code needs an array, one value, or a Boolean. Then decide whether you are transforming, selecting, accumulating, or sorting. This quick guide covers the common choices:

Goal Method What it returns
Transform each element map() A new array containing callback return values.
Keep every element that matches a condition filter() A shallow copy containing all passing elements.
Get the first matching element find() The first match, or undefined.
Check whether an equal value is present includes() A Boolean.
Check whether any element passes a condition some() A Boolean.
Combine elements into one result reduce() The final accumulator.
Sort an array of numbers sort((a, b) => a - b) The same array, now sorted in place.
Sort while keeping the original unchanged toSorted((a, b) => a - b) A new sorted array.

Transform every element with map()

Use map() when each visited input element should produce a corresponding output. It returns a new array and leaves the input array itself unchanged.

const prices = [5, 15, 25];
const withTax = prices.map((price) => price * 1.2);

console.log(withTax); // [6, 18, 30]
console.log(prices);  // [5, 15, 25]

The callback’s return value becomes the corresponding output. If a callback path returns nothing, that output position is undefined; it does not remove the item. Use filter() to remove items based on a condition. If one input can produce zero or several outputs, consider flatMap().

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.

Do not use map() just to run code for side effects while ignoring its returned array. Use forEach() or a loop when you do not need a transformed array. See MDN’s map() reference.

Keep every match with filter()

Use filter() when you want all elements whose callback result is truthy. The method returns a new array containing those elements; it does not alter the original array.

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
const numbers = [3, 12, 8, 21];
const overTen = numbers.filter((number) => number > 10);

console.log(overTen); // [12, 21]
console.log(numbers); // [3, 12, 8, 21]

The copy is shallow: the result array is new, but any object elements in it are the same objects as in the original. Changing a shared object through one array is visible through the other. For the method details, see MDN’s filter() reference.

Find one match, check existence, or keep all matches

These methods can all answer questions about matching elements, but their results differ:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
  • Use find() for the first matching element. It returns undefined if there is no match.
  • Use some() to get true if at least one element passes a condition, or false otherwise. It can stop once the answer is known.
  • Use includes(value) to check whether an array contains an equal value, without writing a predicate.
  • Use filter() when you need an array containing every match.
const users = [{ id: 2 }, { id: 7 }, { id: 7 }];

const firstSeven = users.find((item) => item.id === 7);
const hasSeven = users.some((item) => item.id === 7);
const hasGuestRole = ["admin", "editor"].includes("guest");
const allSevens = users.filter((item) => item.id === 7);

console.log(firstSeven);   // { id: 7 }
console.log(hasSeven);     // true
console.log(hasGuestRole); // false
console.log(allSevens);    // [{ id: 7 }, { id: 7 }]

With objects, a predicate such as item.id === 7 checks a property. includes() is for equality-based value checks, not for matching an object’s properties. See MDN’s find() reference for its return behavior.

Accumulate a result with reduce()

Use reduce() when each iteration contributes to a single accumulated result, such as a sum. The callback’s returned accumulator is passed into the next iteration; the method returns the final accumulator.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
const total = [5, 15, 25].reduce((sum, price) => sum + price, 0);

console.log(total); // 45

The initial value 0 makes the starting state explicit. If you omit it, the first array element becomes the initial accumulator, which also means an empty array needs special consideration. For this example, an explicit initial value lets the empty case produce 0. MDN notes that reduce() skips empty slots in sparse arrays. See the reduce() reference.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Sort numbers without surprises

sort() changes the array it is called on and returns that same array reference. Without a comparator, it sorts values by their string conversion, which can put numbers in an unexpected order. For example, the default order can place 100000 before 21.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
const values = [1, 30, 4, 21, 100000];
values.sort((a, b) => a - b);

console.log(values); // [1, 4, 21, 30, 100000]

For a numeric comparator, a negative result places a before b, a positive result places it after, and zero treats the pair as equal for ordering. The familiar ascending comparator (a, b) => a - b applies that rule to numbers. Because this example uses sort(), values itself is now sorted. MDN explains comparator behavior in its sort() reference.

Sort a copy with toSorted()

If you need a sorted result but want to retain the original order, use toSorted() with the same comparator:

const original = [3, 1, 2];
const sorted = original.toSorted((a, b) => a - b);

console.log(sorted);   // [1, 2, 3]
console.log(original); // [3, 1, 2]

MDN reports browser availability for toSorted() since July 2023. That date does not guarantee support in every browser or JavaScript runtime: check the compatibility information for the exact environments you target before relying on it. See MDN’s toSorted() reference.

Know the sparse-array edge case

A sparse array has a missing indexed property, or “hole.” That is different from a position that explicitly contains undefined. Array methods do not all treat holes alike: map(), filter(), and reduce() skip empty slots; find() and toSorted() treat holes as undefined during traversal; and sort() preserves holes and moves them to the end, after undefined values.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For ordinary application code and beginner examples, prefer dense arrays and avoid depending on these distinctions. MDN’s indexed collections guide and Array reference cover array behavior in more detail.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.