Bài tập Javascript cơ bản: Class

Bài tập 1

Giả sử có class 1 điểm (point) trong tọa độ,
Viết hàm “khoangCach” có đầu vào là 2 điểm, hàm trả về khoảng cách giữa hai điểm đó. khai báo hai điểm có tọa độ bất kỳ.

class Point {
  constructor(x, y) {
    this.x = x;
    this.y = y;
  }
}

function khoangCach(p1, p2) {
  return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));
}
let A = new Point(2, 4);
console.log("Tung độ A =", A.x);
console.log("Hoành độ A =", A.y);
let B = new Point(3, 2);
console.log("Tung độ B =", B.x);
console.log("Hoành độ B =", B.y);

let kc = khoangCach(A, B);
console.log("khoang cach:", kc);

Bài tập 2

Một của hàng bán trái cây (Fruit) quản lý sản phẩm theo id (mã sản phẩm), tên giá (theo kg), Thông tin trong kho như sau:

class Fruit {
  constructor(id, ten, gia) {
    this.id = id;
    this.ten = ten;
    this.gia = gia;
  }
}

var kho = [
  new Fruit(0, "Táo", 20000),
  new Fruit(1, "Mận", 10000),
  new Fruit(2, "Vải", 30000),
  new Fruit(3, "Ổi", 10000),
  new Fruit(3, "Ổi", 5000),
  new Fruit(4, "Nho", 720000),
  new Fruit(5, "Dâu", 20000),
  new Fruit(6, "Đu đủ", 40000),
  new Fruit(7, "Xoài", 30000),
  new Fruit(8, "Dừa", 30000)
];
var khoAZ = kho.sort(function(a, b) {
  if (a.ten < b.ten) {
    return -1;
  } else if (a.ten == b.ten) {
    return 0;
  } else {
    return 1;
  }
});

console.log(khoAZ);

var khoReMac = kho.sort((a, b) => {
  return a.gia - b.gia;
});
console.log(khoReMac);

var khoReMacAZ = kho.sort(function(a, b) {
  if (a.ten === b.ten) {
    return a.gia - b.gia;
  }
  return a.ten > b.ten ? 1 : -1;
});
console.log(khoReMacAZ);

let FR = ReNhat(kho);
function ReNhat(A) {
  let min = A[0];
  let max = A[0];
  for (let i = 1; i < A.length; i++) {
    if (A[i].gia > max.gia) {
      max = A[i];
    }
    if (A[i].gia < min.gia) {
      min = A[i];
    }
  }
  console.log("Đắt nhất: ", max.ten + max.gia);
  console.log("Rẻ nhất: ", min.ten + min.gia);
}
  • Viết chương trình in ra thông tin 2 loại trái cây rẻ nhất và mắc nhất trong kho
  • In ra danh sách trái cây kèm theo giá theo thứ tự từ A – Z trong kho
  • In ra danh sách trái cây kèm theo giá theo thứ tự rẻ đến mắc trong kho

Bài tập 3 (tiếp bài tập 2)

một order từ khách hàng khi mua trái cây bao gồm danh sách các cặp id (mã sản phẩm) và số kg .
Ví dụ: let order = {0:1, 1: 0.5} => mua “Táo” 1 kg, “Mận” 0.5 kg
hãy tính giá của order dưới dây là bao nhiêu ?

var order = {
  0: 1,
  1: 0.5,
  3: 1,
  4: 2,
  6: 0.5,
  7: 3
};

let sum = 0;
for (const id in order) {
  const element = order[id];
  // console.log(element);
  let sanPham = kho.find(function(a) {
    return a.id == id;
  });
  let gia = element * sanPham.gia;
  sum += gia;
  console.log(`${sanPham.ten} kg: ${element} tien: ${gia}`);
}
console.log("Tong don hang", sum);

Bài tập này có thể dùng vòng lặp for .. in để duyệt từng key của đối tượng “order”, Tham khảo ở link sau