Tôi có một cấu trúc như sau:
skillet.person = {
name: {
first: '',
last: ''
},
age: {
current: ''
},
birthday: {
day: '',
month: '',
year: ''
}
}
Tôi đã tự hỏi làm thế nào tôi sẽ cập nhật các giá trị này? tức là tôi mặc dù những điều sau đây là chính xác
skillet.person.name.push[{ first: 'blah', last: 'ha'}];
Nhưng nó sai? Làm thế nào tôi có thể sửa lỗi này ?
hỏi ngày 26 tháng 2 năm 2012 lúc 16:34Feb 26, 2012 at 16:34
1
Sử dụng cú pháp ES7+ và cách tiếp cận chức năng:
const new_obj = { ...obj, name: { first: 'blah', last: 'ha'} }
Đã trả lời ngày 16 tháng 3 năm 2018 lúc 11:35Mar 16, 2018 at 11:35
Ramon Diogoramon DiogoRamon Diogo
1.4321 Huy hiệu vàng13 Huy hiệu bạc9 Huy hiệu đồng1 gold badge13 silver badges9 bronze badges
3
skillet.person.name.first = "blah"
skillet.person.name.last = "ha"
hoặc
skillet.person.name = {first : "blah", last : "ha"}
Đã trả lời ngày 26 tháng 2 năm 2012 lúc 16:36Feb 26, 2012 at 16:36
YxdyxdYXD
30.7K15 Huy hiệu vàng70 Huy hiệu bạc113 Huy hiệu đồng15 gold badges70 silver badges113 bronze badges
6
Như @Ramon-Diogo đã viết với ES7+
Tôi thích cập nhật các giá trị lồng nhau như:
let user = {
name: {
first: 'john',
last: 'smith'
},
age: 18,
city: 'new york'
}
const age = 20;
user = {...user, age}
console.log[user.age]
// output: 20
const newData ={
age: 22,
city: 'san francisco'
};
user = {...user,...newData}
console.log[user.name.first]
// output: john
console.log[user.age]
// output: 22
console.log[user.city]
// output: 'san francisco'
Đã trả lời ngày 1 tháng 8 năm 2019 lúc 18:46Aug 1, 2019 at 18:46
Emisael Carreraemisael CarreraEmisael Carrera
4871 Huy hiệu vàng6 Huy hiệu bạc9 Huy hiệu đồng1 gold badge6 silver badges9 bronze badges
1
Nếu bạn muốn trộn một đối tượng vào một đối tượng khác, bạn có thể sử dụng chức năng mở rộng sâu của JQuery. "Deep" có nghĩa là nó không ghi đè lên
skillet.person.name.push[{ first: 'blah', last: 'ha'}];
1 với đối tượng mới, mà là ghi đè lên các thuộc tính bên trong một đối tượng như vậy.$.extend[true, skillet.person, {
name: {
first: 'updated'
},
birthday: {
day: 'updated',
year: 'updated'
}
}];
Bây giờ,
skillet.person.name.push[{ first: 'blah', last: 'ha'}];
2 có các thuộc tính thích hợp được cập nhật, trong khi các thuộc tính khác không bị ảnh hưởng.Đã trả lời ngày 26 tháng 2 năm 2012 lúc 16:55Feb 26, 2012 at 16:55
PIMVDBPIMVDBpimvdb
Phù bằng vàng 148K7676 gold badges301 silver badges351 bronze badges
0
skillet.person.name.push[{ first: 'blah', last: 'ha'}];
3 là một phương pháp của skillet.person.name.push[{ first: 'blah', last: 'ha'}];
4S thêm một mục mới vào một mảng.Nếu bạn muốn thay thế giá trị thì:
skillet.person.name = { … };
Nếu bạn muốn lưu trữ nhiều tên [đầy đủ] trong đối tượng, thì bạn sẽ cần thuộc tính để giữ một mảng các đối tượng thay vì một đối tượng.
Đã trả lời ngày 26 tháng 2 năm 2012 lúc 16:36Feb 26, 2012 at 16:36
YxdyxdQuentin
30.7K15 Huy hiệu vàng70 Huy hiệu bạc113 Huy hiệu đồng121 gold badges1175 silver badges1289 bronze badges
2
Như @Ramon-Diogo đã viết với ES7+
let skillet = {
person: {
name : {
first: '',
last : ''
},
age : {
current: ''
},
birthday: {
day : '',
month: '',
year : ''
}
}
};
let update = {
person: {
name: {
first: 'blah',
last : 'ha'
}
}
};
let result = Object.assign[skillet.person, update.person];
console.log[result];
Tôi thích cập nhật các giá trị lồng nhau như:Dec 20, 2019 at 20:07
Jasp402Jasp402Jasp402
Đã trả lời ngày 1 tháng 8 năm 2019 lúc 18:462 silver badges10 bronze badges
2
skillet.person.name.first = "blah"
skillet.person.name.last = "ha"
Emisael Carreraemisael Carrera
4b0
4871 Huy hiệu vàng6 Huy hiệu bạc9 Huy hiệu đồng30 gold badges92 silver badges137 bronze badges
Nếu bạn muốn trộn một đối tượng vào một đối tượng khác, bạn có thể sử dụng chức năng mở rộng sâu của JQuery. "Deep" có nghĩa là nó không ghi đè lên
skillet.person.name.push[{ first: 'blah', last: 'ha'}];
1 với đối tượng mới, mà là ghi đè lên các thuộc tính bên trong một đối tượng như vậy.Apr 6, 2020 at 9:22
skillet.person.name.push[{ first: 'blah', last: 'ha'}];
0Bây giờ,
skillet.person.name.push[{ first: 'blah', last: 'ha'}];
2 có các thuộc tính thích hợp được cập nhật, trong khi các thuộc tính khác không bị ảnh hưởng.Đã trả lời ngày 26 tháng 2 năm 2012 lúc 16:55Feb 25, 2021 at 10:37
1