следующая стратегия использует for...in
цикл для обхода объекта, заменяя все значения свойств с цепочкой звездочек.
const myObject = {"Name": "value1", "Phoneno": "545454545445"};
const mask = obj => {
const masked = {};
for (let key in obj) masked[key] = "*****";
return masked;
};
console.log("original:", myObject);
console.log("masked:", mask(myObject));
Если вы хотите значение замаскированного быть звездочками, но такие же длины, как и оригинал (вместо постоянной длиной), изменить цикл for...in
на следующее: for (let key in obj) masked[key] = "*".repeat(obj[key].length);
.
UPDATE: маскировка вложенных объекты (и даже массивы)
В комментариях, вы спрашивали о маскирующих значениях вложенных объектов.
Для обработки вложенного объекта или даже комбинаций объектов и/или массивов в любом вложенном расположении вам, вероятно, потребуется рекурсия. Короче говоря, если текущее значение является примитивным значением (например, строка, число, логическое и т. Д.), То замените его на фиктивную строку, но если текущее значение является самим объектом (или массивом), то re -отправить это значение обратно в процесс маскировки с самого начала.
В следующем примере показан один способ, которым это может быть сделано. Я использовал jQuery для определения того, является ли значение простым объектом или массивом. В этом примере имена свойств объекта заканчиваются на «A», «B», «C» и т. Д. Массивы преобразуются в объекты, например. ["foo", "bar"]
будет преобразован в {"0": "*****", "1": "*****"}
.
const myObject = {propA: "a", propB: {propBA: "ba", propBB: "bb"}, propC: ["c0", "c1"], propD: {propDA: "da", propDB: {propDBA: "dba", propDBB: "dbb"}, propDC: ["dc0", "dc1"]}, propE: ["e0", {propE1A: "e1a", propE1B: "e1b"}, ["e20", "e21"]]};
const mask = objOrArr => {
const masked = {};
for (let key in objOrArr) {
const val = objOrArr[key];
if ($.isPlainObject(val) || $.isArray(val)) {
masked[key] = mask(val);
} else {
masked[key] = "*****";
}
}
return masked;
};
console.log("original... ", myObject);
console.log("masked... ", mask(myObject));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Спасибо, это работает. но что, если JSON как ниже – tiya
Как ниже? Ниже, что? Я не понимаю –