thể trùng lặp:
indexOf method in an object array?Trục trặc khi sử indexOf trên một mảng phức tạp
Tôi có một mảng javascript mà sau định dạng này:
var arrayName = [
{id: "a", gender: "man", item: "stuff"},
{id: "b", gender: "woman", item: "stuff"},
{id: "c", gender: "man", item: "stuff"},
{id: "d", gender: "man", item: "stuff"}
];
Có cách nào mà Tôi có thể sử dụng array.indexOf để tìm một chỉ mục trong mảng, khi ví dụ tôi biết biến "id".
Ví dụ: tôi đã thử;
var position = arrayName.indexOf("b");
arrayName[position].gender = "man"
Hiện tại tôi đang sử dụng;
for(var i=0; i<arrayName.length; i++) {
if(arrayName[i].id == "b"){
arrayName[i].gender = "man";
}
}
này thứ hai công trình kỹ thuật nhưng các mảng thực tế tôi đang sử dụng có 150 bài dự thi và 10 mục trong mỗi mục để lặp qua tất cả dường như rất lãng phí khi tôi biết "id" của entry Tôi muốn chỉnh sửa. indexOf sẽ là một cách tiếp cận sạch hơn nhiều nếu tôi có thể làm cho nó hoạt động.
Chỉ mục gọiOf trên mảng không tương thích với trình duyệt chéo. – erturne
@erturne - bạn nói đúng - thậm chí không có trong IE8 - wow –
@erturne: Không phải, nhưng [như đã nêu trên Mạng nhà phát triển Mozilla] (https://developer.mozilla.org/en/JavaScript/Reference/ Global_Objects/Array/indexOf), nó có thể dễ dàng được triển khai ngay cả trong các trình duyệt cũ/không được chấp nhận. – Tadeck