Không có phương pháp trực tiếp để Làm phẳng các đối tượng lồng nhau trong JavaScript. Bạn phải kéo tất cả các giá trị đến một độ sâu duy nhất bằng cách sử dụng vòng lặp for và các phương thức khác
Làm phẳng đối tượng lồng nhau JavaScript
Mã ví dụ đơn giản
let ob = {
C: "EHs",
A: "BN",
N: +91,
M: {
HTML: "MR ABC",
CSS: "XYZ",
JS: "NONE"
}
};
const flattenObj = [ob] => {
let result = {};
for [const i in ob] {
if [[typeof ob[i]] === 'object' && !Array.isArray[ob[i]]] {
const temp = flattenObj[ob[i]];
for [const j in temp] {
result[i + '.' + j] = temp[j];
}
}
else {
result[i] = ob[i];
}
}
return result;
};
console.log[flattenObj[ob]];
đầu ra
Một vi dụ khac
function flattenObject[obj, newObj, prefix] {
newObj = newObj || {};
prefix = prefix || "";
for [var key in obj] {
if [obj.hasOwnProperty[key]] {
const type = typeof obj[key];
const newKey = !!prefix ? prefix + "." + key : key;
if [type === "string"] {
newObj[newKey] = obj[key];
}
else if [type === "object"] {
flattenObject[obj[key], newObj, newKey];
}
}
}
return newObj;
}
var obj = {
name:'Namig',
surname:'Hajiyev',
address:{
city:'Sumgait',
country:'Azerbaijan',
geo: {
lat:'40.5897200',
long:'49.6686100'
}
}
}
console.log[flattenObject[obj]];
đầu ra
{
"name": "Namig",
"surname": "Hajiyev",
"address.city": "Sumgait",
"address.country": "Azerbaijan",
"address.geo.lat": "40.5897200",
"address.geo.long": "49.6686100"
}
Sử dụng đệ quy
const source = {
a: 1,
b: {
c: true,
d: {
e: 'foo'
}
},
f: false,
g: ['red', 'green', 'blue'],
h: [{
i: 2,
j: 3
}]
}
const flatten = [obj, prefix = '', res = {}] =>
Object.entries[obj].reduce[[r, [key, val]] => {
const k = `${prefix}${key}`
if[typeof val === 'object']{
flatten[val, `${k}.`, r]
} else {
res[k] = val
}
return r
}, res]
console.log[flatten[source]]
đầu ra
{
"a": 1,
"b.c": true,
"b.d.e": "foo",
"f": false,
"g.0": "red",
"g.1": "green",
"g.2": "blue",
"h.0.i": 2,
"h.0.j": 3
}
Hãy bình luận nếu bạn có bất kỳ nghi ngờ hoặc đề xuất nào về mã ví dụ Js này
Ghi chú. Tất cả mã Ví dụ về JS đều được thử nghiệm trên trình duyệt Firefox và trình duyệt Chrome
hệ điều hành. cửa sổ 10
Mã số. Phiên bản HTML5
Rohit
Bằng cấp về Khoa học Máy tính và Kỹ sư. Nhà phát triển ứng dụng và có kinh nghiệm về nhiều ngôn ngữ lập trình. Đam mê công nghệ & thích học hỏi kỹ thuật
Viết chương trình JavaScript để làm phẳng một đối tượng với các đường dẫn cho các phím Giải pháp mẫu Mã JavaScript Đầu ra mẫu Sơ đồ Bản thử trực tiếp Xem Bút javascript-basic-exercise-233-1 của w3resource [@w3resource] trên CodePenJavaScript cơ bản [Cú pháp ES6]. Bài tập-233 có lời giải
//#Source //bit.ly/2neWfJ2
const flattenObject = [obj, prefix = ''] =>
Object.keys[obj].reduce[[acc, k] => {
const pre = prefix.length ? prefix + '.' : '';
if [typeof obj[k] === 'object'] Object.assign[acc, flattenObject[obj[k], pre + k]];
else acc[pre + k] = obj[k];
return acc;
}, {}];
console.log[flattenObject[{ a: { b: { c: 1 } }, d: 1 }]];
{"a.b.c":1,"d":1}
Cải thiện giải pháp mẫu này và đăng mã của bạn qua Disqus
Trước. Viết chương trình JavaScript lấy một hàm làm đối số, sau đó biến đối số đầu tiên thành đối số cuối cùng
Kế tiếp. Viết chương trình JavaScript để làm phẳng một mảng đã cho đến độ sâu đã chỉ định
Mức độ khó của bài tập này là gì?
Dễ dàng trung bình khóKiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource
Theo dõi chúng tôi trên Facebook và Twitter để cập nhật thông tin mới nhất.
JavaScript. Lời khuyên trong ngày
Lấy chỉ số lặp lại trong vòng lặp for-of
Chúng ta có thể lấy chỉ số lặp của vòng lặp for-of với phương thức entry của mảng
Sau đó, chúng ta có thể kết hợp điều đó với một nhiệm vụ phá hủy
Chẳng hạn, chúng ta có thể viết
element.style.display = 'none';
Nó giống như cài đặt hiển thị. 'không ai'
Nếu chúng ta muốn bật lại phần tử của chúng, chúng ta có thể viết
i là chỉ số và v là giá trị
Giới thiệu. https. //chút. ly/3mp5NgH
- Xu hướng hàng tuần
- Bài tập lập trình Java cơ bản
- Truy vấn con SQL
- Bài tập cơ sở dữ liệu Adventureworks
- Bài tập cơ bản C# Sharp
- SQL COUNT[] với sự khác biệt
- Bài tập chuỗi JavaScript
- Xác thực biểu mẫu HTML JavaScript
- Bài tập bộ sưu tập Java
- hàm SQL COUNT[]
- Tham gia bên trong SQL
- Hàm JavaScript Bài tập
- Hướng dẫn Python
- Bài tập mảng Python
- Tham gia chéo SQL
- Bài tập về mảng Sharp trong C#