This program finds the first item costing more than $1 and checks if any item costs less than $1.
Javascript
const items = [
{id: 1, name: 'Pen', price: 1.5},
{id: 2, name: 'Notebook', price: 3},
{id: 3, name: 'Pencil', price: 0.5}
];
// Find the first item that costs more than $1const expensiveItem = items.find(item => item.price > 1);
console.log('First expensive item:', expensiveItem);
// Check if there is any item cheaper than $1const hasCheapItem = items.some(item => item.price < 1);
console.log('Is there any cheap item?', hasCheapItem);
OutputSuccess
Important Notes
If find does not find anything, it returns undefined. Always check before using the result.
some stops checking as soon as it finds a match, so it is efficient for large lists.
Both methods do not change the original array.
Summary
find gets the first item that matches a rule or undefined if none.
some checks if any item matches a rule and returns true or false.
Use these methods to write simple and clear code when searching or checking lists.
Practice
(1/5)
1. What does the find method do in JavaScript arrays?
easy
A. Returns the first element that matches a condition or undefined if none
B. Returns true if all elements match a condition
C. Returns the index of the last matching element
D. Returns a new array with elements that match a condition
Solution
Step 1: Understand the purpose of find
The find method searches an array and returns the first element that satisfies the given condition.
Step 2: Compare with other methods
Unlike filter which returns all matching elements, find returns only the first or undefined if none found.
Final Answer:
Returns the first element that matches a condition or undefined if none -> Option A
Quick Check:
find returns first match [OK]
Hint: Remember: find returns one item, some returns true/false [OK]
Common Mistakes:
Confusing find with filter
Thinking find returns a boolean
Assuming find returns all matches
2. Which of the following is the correct syntax to use some on an array arr to check if any element is greater than 10?
easy
A. arr.some(x > 10);
B. arr.some(x => x > 10);
C. arr.some(x => {x > 10});
D. arr.some(x => x > 10) {};
Solution
Step 1: Identify correct arrow function syntax
The some method requires a function that returns true or false. The arrow function x => x > 10 correctly returns a boolean.
Step 2: Check syntax errors in options
arr.some(x > 10); misses the arrow function syntax. arr.some(x => {x > 10}); uses braces but no return statement, so returns undefined. arr.some(x => x > 10) {}; has extra braces after the method call, which is invalid.
Final Answer:
arr.some(x => x > 10); -> Option B
Quick Check:
Arrow function with return expression [OK]
Hint: Use arrow function with expression for some() [OK]
Common Mistakes:
Missing arrow in arrow function
Using braces without return in arrow function
Adding extra braces after method call
3. What is the output of this code?
const numbers = [3, 7, 12, 5];
const result = numbers.find(n => n > 10);
console.log(result);
medium
A. 7
B. undefined
C. 3
D. 12
Solution
Step 1: Understand the find condition
The condition n > 10 looks for the first number greater than 10 in the array.
Step 2: Check array elements in order
The array is [3, 7, 12, 5]. The first element > 10 is 12.
Final Answer:
12 -> Option D
Quick Check:
First number > 10 is 12 [OK]
Hint: Find returns first match, not all matches [OK]
Common Mistakes:
Thinking find returns all matches
Confusing find with some
Choosing first element instead of first matching
4. The following code does not work as expected. What is the problem?