HomeLập trìnhJavaScriptSử dụng điều...

Sử dụng điều kiện IF trong phương thức bản đồ của Javascript – JavaScript


Đoạn mã sau có các chi tiết nhân viên
Mục tiêu của tôi: để có được một mảng mới với tên nhân viên có vai trò công việc là Thư ký

const employees = [
    {name: "ABC",  jobrole: "Officer", salary: "$200",  dob: "10-05-1990"},
    {name: "DEF",  jobrole: "Clerk", salary: "$100",  dob: "12-08-1992"},
    {name: "GHI",  jobrole: "Manager", salary: "$300",  dob: "01-01-1992"},
    {name: "JKL",  jobrole: "Clerk", salary: "$100",  dob: "12-03-1991"},
    {name: "MNO",  jobrole: "Officer", salary: "$200",  dob: "11-09-1991"},
]

console.log("Ex: Using map method to create a new Array of all the Employee names")
const mapEmployeeNames = employees.map(function(employee){
    if(employee.jobrole === "Clerk"){
        return employee.name
    }    
})

console.log(mapEmployeeNames)

Đầu ra của đoạn mã trên là
Mảng(5) [ undefined, “DEF”, undefined, “JKL”, undefined ]

không thể có một mảng chỉ có tên nhân viên đã chọn (không có tên không xác định)?


map trả về một mảng mới có cùng kích thước, bạn có thể ghép nó với filter nếu bạn muốn thay đổi các phần tử mảng, đồng thời giảm số lượng



1 lượt thích

Xin cảm ơn vì câu trả lời nhanh của bạn… Vì vậy, không thể chỉ xuất một chỉ mục mảng cụ thể (ví dụ như Jobrole trong ví dụ này) chỉ sử dụng bản đồ phải không? bản đồ chỉ trả về toàn bộ mảng dưới dạng một mảng mới được sửa đổi hoặc chưa sửa đổi… hãy sửa lỗi cho tôi nếu tôi sai…

Đọc thêm  Cách xây dựng công cụ rút ngắn URL đơn giản chỉ bằng HTML và JavaScript

nếu bạn chỉ muốn một chỉ mục duy nhất, có thể bạn muốn sử dụng một cái gì đó như find hoặc findIndex thay thế?

map trả về một mảng mới có cùng kích thước



2 lượt thích

Mã này ở đây dường như làm những gì bạn muốn:

let arr = [];

employees.forEach(function(a){
    if(a.jobrole == 'Clerk') {
        arr.push(a.name);
    }
})

Bây giờ, ở đây tôi đang tạo một chức năng mà bạn vượt qua:

  1. thông tin bạn muốn nhận (name, jobrole, salary, dob)
  2. tiêu chí tìm kiếm bạn muốn tìm kiếm (name, jobrole, salary, dob)
  3. giá trị mà bạn muốn đối sánh (ví dụ: “Clerk”)

Và nó trả về tìm kiếm của bạn trong một mảng

function searchEmployees(search, criteria, value) {
    let arr = [];

    employees.forEach(function(a){
        if (a[criteria] == value) {
            arr.push(a[search]);
        }
    });

    return arr;
}

Bây giờ bạn có thể thử:

searchEmployees ("name", "jobrole", "Clerk"); // Gets all names whose jobrole is 'Clerk'
searchEmployees ("salary", "jobrole", "Officer"); // Gets the salaries of the Officers
searchEmployees ("dob", "salary", "$200"); // Gets dob of people who make $200



1 lượt thích

Đọc thêm  Cách chuyển đổi chuỗi thành số trong JavaScript

Chính xác điều này tôi muốn biết rằng bản đồ một mình không thể trả về các giá trị đã chọn…



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status