Я сражаюсь с итеративной функцией. У меня есть этот объект:Итерация объекта в javascript, сохранение родителей
var table = {
"general": {
"amount": ["mandatory", "isAmount"],
"order_id": ["mandatory", "isString"]
},
"card": {
"number": ["Regex:/^[0-9]{16}$/", "mandatory"],
"expiry": {
"month": ["Regex:/^[0-9]{2}$", "mandatory"],
"year": ["Regex:/^[0-9]{4}$/", "mandatory"]
},
"network": ["List:maestro|visa|mastercard|amex|jcb", "mandatory"],
"cvv": ["Regex:/^[0-9]{3,4}$/", "mandatory"]
}
}
цель здесь, чтобы быть в состоянии console.log
этого:
general.amount : ["mandatory", "isAmount"]
general.order_id: ["mandatory", "isString"]
card.number: ["Regex:/^[0-9]{16}$/", "mandatory"]
card.expiry.month: ["Regex:/^[0-9]{2}$", "mandatory"]
card.expiry.year: ["Regex:/^[0-9]{4}$/", "mandatory"]
card.network: ["List:maestro|visa|mastercard|amex|jcb", "mandatory"]
card.cvv: ["Regex:/^[0-9]{3,4}$/", "mandatory"]
-> Ведение родителей для каждого поля, и показать их.
На самом деле, я пробовал много вещей, вот начало:
function boucle(object, parent) {
for (var key in object) {
if (object.hasOwnProperty(key)) {
var value = object[key];
if (value.length) {
console.log(parent + '.' + key);
} else {
if (parent) {
parent += "."+key;
} else {
parent = key;
}
boucle(value, parent)
}
}
}
}
И я не знаю, куда идти. Нужно ли мне менять объект?
Заранее спасибо
Спасибо, но я хочу, чтобы функция работала, даже если глубина исходного объекта составляет 4, 5 ... 100 независимо – Kai23
Я только что дал вам представление об этой конкретной проблеме. Вы правильно указываете код для n-й глубины. Однако ваша проблема решена. –