Menambahkan/menghapus item dari objek JavaScript dengan jQuery

Saya memiliki JavaScript object sebagai berikut:

var data = {items: [
    {id: "1", name: "Snatch", type: "crime"},
    {id: "2", name: "Witches of Eastwick", type: "comedy"},
    {id: "3", name: "X-Men", type: "action"},
    {id: "4", name: "Ordinary People", type: "drama"},
    {id: "5", name: "Billy Elliot", type: "drama"},
    {id: "6", name: "Toy Story", type: "children"}
]};

Jika saya ingin menambah/menghapus item ke daftar ini, bagaimana aku pergi tentang itu menggunakan jQuery? Klien ingin daftar ini akan secara dinamis yang dapat dimodifikasi.

Mengomentari pertanyaan (4)
Larutan

Pertama, yang dikutip kode ini tidak JSON. Kode JavaScript objek literal notasi. [JSON][1] adalah subset dari itu dirancang untuk lebih mudah parsing.

Kode anda mendefinisikan sebuah objek (data) yang berisi array (item) dari benda-benda (masing-masing dengan sebuah id, nama, dan jenis).

Anda don't perlu atau ingin jQuery untuk ini, hanya JavaScript.

Menambahkan item:

data.items.push(
    {id: "7", name: "Douglas Adams", type: "comedy"}
);

Yang menambah end. Lihat di bawah untuk menambahkan di tengah.

Menghapus item:

Ada beberapa cara. The [sambatan][2] metode ini adalah yang paling serbaguna:

data.items.splice(1, 3); // Removes three items starting with the 2nd,
                         // ("Witches of Eastwick", "X-Men", "Ordinary People")

sambatan memodifikasi asli array, dan mengembalikan sebuah array dari item anda dihapus.

Menambahkan di tengah:

sambatan benar-benar melakukan keduanya, menambah, dan menghapus. Tanda tangan sambatan metode adalah:

removed_items = arrayObject.splice(index, num_to_remove[, add1[, add2[, ...]]]);
  • index - indeks di mana untuk mulai membuat perubahan
  • num_to_remove - mulai dengan indeks itu, menghapus ini banyak entri
  • addN - ...dan kemudian menyisipkan elemen-elemen ini

Sehingga saya dapat menambahkan item pada posisi ke-3 seperti ini:

data.items.splice(2, 0,
    {id: "7", name: "Douglas Adams", type: "comedy"}
);

Apa yang dikatakan: Mulai dari indeks 2, menghapus nol item, dan kemudian menyisipkan item berikut ini. Hasilnya terlihat seperti ini:


var data = {items: [
    {id: "1", name: "Snatch", type: "crime"},
    {id: "2", name: "Witches of Eastwick", type: "comedy"},
    {id: "7", name: "Douglas Adams", type: "comedy"},     // 
Komentar (6)

Sambatan adalah baik, semua orang menjelaskan sambatan jadi saya didn't menjelaskannya. Anda juga dapat menggunakan hapus kata kunci dalam JavaScript, it's baik. Anda dapat menggunakan $.grep juga untuk memanipulasi ini menggunakan jQuery.

JQuery Cara :

data.items = jQuery.grep(
                data.items, 
                function (item,index) { 
                  return item.id !=  "1"; 
                });

HAPUS dengan Cara:

delete data.items[0]

Untuk Menambahkan PUSH lebih baik sambatan, karena sambatan adalah berat tertimbang fungsi. Sambatan membuat array baru , jika anda memiliki besar ukuran dari array maka dapat merepotkan. menghapus ini kadang-kadang berguna, setelah menghapus jika anda mencari panjang array maka tidak ada perubahan suhu udara di sana. Jadi menggunakannya dengan bijak.

Komentar (2)

Jika anda menggunakan jQuery, anda dapat menggunakan memperpanjang fungsi untuk menambahkan item baru.

var olddata = {"fruit":{"apples":10,"pears":21}};

var newdata = {};
newdata['vegetables'] = {"carrots": 2, "potatoes" : 5};

$.extend(true, olddata, newdata);

Ini akan menghasilkan:

{"fruit":{"apples":10,"pears":21}, "vegetables":{"carrots":2,"potatoes":5}};
Komentar (1)

Yang's tidak JSON pada semua, it's hanya objek Javascript. JSON adalah representasi teks dari data, yang menggunakan subset dari Javascript sintaks.

Alasan yang dapat anda't menemukan informasi tentang memanipulasi JSON menggunakan jQuery adalah karena jQuery memiliki apa-apa yang dapat melakukan itu, dan itu's umumnya tidak dilakukan sama sekali. Anda memanipulasi data dalam bentuk objek Javascript, dan kemudian mengubahnya menjadi JSON string jika itu adalah apa yang anda butuhkan. (jQuery memiliki metode untuk konversi, meskipun.)

Apa yang anda punya adalah hanya sebuah objek yang berisi array, sehingga anda dapat menggunakan semua pengetahuan yang sudah anda miliki. Hanya menggunakan data.barang-barang untuk mengakses array.

Misalnya, untuk menambahkan item lain ke array dinamis menggunakan nilai-nilai:

// The values to put in the item
var id = 7;
var name = "The usual suspects";
var type = "crime";
// Create the item using the values
var item = { id: id, name: name, type: type };
// Add the item to the array
data.items.push(item);
Komentar (0)

Nah, itu's hanya objek javascript, sehingga anda dapat memanipulasi data.barang-barang` seperti anda akan biasa array. Jika anda lakukan:

data.items.pop();

anda item array akan menjadi 1 item yang lebih singkat.

Komentar (0)

Menambahkan sebuah objek json array

var arrList = [];
var arr = {};   
arr['worker_id'] = worker_id;
arr['worker_nm'] = worker_nm;
arrList.push(arr);

Menghapus objek dari json

Itu pekerja untuk saya.

  arrList = $.grep(arrList, function (e) { 

        if(e.worker_id == worker_id) {
            return false;
        } else {
            return true;
        }
    });

Ini mengembalikan sebuah array tanpa objek.

Semoga membantu.

Komentar (1)

Menjaga hal-hal yang sederhana :)

var my_form_obj = {};
my_form_obj.name = "Captain America";
my_form_obj.weapon = "Shield";

Harap ini membantu!

Komentar (0)

Mencoba

data.items.pop();
data.items.push({id: "7", name: "Matrix", type: "adult"});
var data = {items: [
    {id: "1", name: "Snatch", type: "crime"},
    {id: "2", name: "Witches of Eastwick", type: "comedy"},
    {id: "3", name: "X-Men", type: "action"},
    {id: "4", name: "Ordinary People", type: "drama"},
    {id: "5", name: "Billy Elliot", type: "drama"},
    {id: "6", name: "Toy Story", type: "children"}
]};

data.items.pop();
data.items.push({id: "7", name: "Matrix", type: "adult"});

console.log(data);
Komentar (0)