Tôi có một đối tượng có thể là bất kỳ số tầng sâu nào và có thể có bất kỳ thuộc tính nào hiện có. Ví dụ:
var obj = {
db: {
mongodb: {
host: 'localhost'
}
}
};
Trên đó tôi muốn đặt (hoặc ghi đè) các thuộc tính như vậy:
set('db.mongodb.user', 'root');
// or:
set('foo.bar', 'baz');
Trong đó chuỗi thuộc tính có thể có bất kỳ độ sâu nào và giá trị có thể là bất kỳ loại / thứ nào.
Các đối tượng và mảng dưới dạng giá trị không cần phải được hợp nhất, nếu khóa thuộc tính đã tồn tại.
Ví dụ trước sẽ tạo ra đối tượng sau:
var obj = {
db: {
mongodb: {
host: 'localhost',
user: 'root'
}
},
foo: {
bar: baz
}
};
Làm thế nào tôi có thể nhận ra một chức năng như vậy?
set('foo', 'bar'); set('foo.baz', 'qux');
, nơifoo
đầu tiên giữ aString
sau đó trở thành anObject
? Điều gì xảy ra với'bar'
?