10/10/2018, 09:51
Cần giúp đỡ về JavaScript Array
Mình có chút vấn đề về JavaScript muốn nhờ các bạn giải đáp giúp.
Mình có đoạn code sau
Mình đã sử dụng bằng cách
Nhưng bằng cách này mình chỉ chó nó nhận được 1 phần tử trong đó thôi.Vì thế các bạn có thể sửa giùm mình sao cho url nếu bằng bất kỳ 1 phần tử nào trong fixurl thì sẽ có kết quả được không.
Mình có đoạn code sau
Code:
var fixurl = new Array('link1','link2','link3','link4','link5'); var url=link3;
Code:
if(url==fixurl[2]) {alert(fixurl[2]);}
Bài liên quan
giải thuật này cơ bản lắm mà
Mình gọi ra nó chỉ so sánh được từ cuối cùng thôi.
[=========> Bổ sung bài viết <=========]
Bạn có thể cho nó tương tự giống php này không
<?php
$array0 = array("link2");
$array1 = array("link1", "link2", "link3", "link4");
$result = array_intersect($array0, $array1);
if($array0==$result){print_r($result);}
?>
var result=false;
var x;
for (x in fixurl){
if (fixurl[x]==url){
result=true;
}
}
retrun result;
}
hàm trên kiểm tra có url trong mảng fixurl hay không, trả về true false
nếu tại fixurl[k] đã thấy khớp với url thì trả về true ngay, nếu lặp tiếp tục thì câu lệnh trong if hoặc không làm gì hết, hoặc tiếp tục gán true cho result mặc dù result chứa true rồi, vậy tại sao phải vét hết mảng làm gì trong khi đã có kq -> bác này chả hiểu gì về lập trình vòng lặp, chỉ làm như cái máy thôi
Ví dụ chỗ tai hai, có 1000 elements trong fixurl, trong khi url khớp với elements thứ 3, nó phải chạy tiếp 997 lần mặc dù chả cần thiết
Fix:
var x;
for (x in fixurl){
if (fixurl[x]==url){
return true; // thấy khớp trả về true luôn, khỏi lặp gì nữa
}
}
retrun false; // vét hết mà ko thấy khớp thì trả về false
}
var result=false;
var x;
for (x in fixurl){
if (fixurl[x]==url){
result=true; // thấy khớp gán true
break; // terminal vòng lặp luôn
}
}
return result; // báo kết quả
}