Можно ли удалить теги HTML из ключей в массиве? - PullRequest
2 голосов
/ 02 мая 2019

Я делаю запрос к базе данных и строю массив, ключи моего массива содержат HTML-теги;Я не могу понять, как удалить HTML, но все еще сохраняю ключи и их значения.

Я попытался сопоставить RegEx и нарезку, которая работает по большей части, но при восстановлении значения не совпадают иНеправильные значения.

** EDIT: это регулярное выражение, используемое для получения имен из тегов href. Примечание. Исходный массив хранится в tableDate.

        let newnames = []
        Object.keys(tableData).forEach(function (key) {
            let byeHTML = key.match(/\>(.*?)</g)[0]
            noHMTLnames = byeHTML.slice(1, byeHTML.length -1)
            newtab.push(noHMTLnames)
            nametest = JSON.stringify(newtab)
        })
        console.log(nametest)

Это массив, с которым я работаю

[ '<a href = "http://www.torn.com/profiles.php?XID=2181524">Rum</a>': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 11, Xanax: 0 },
  '<a href = "http://www.torn.com/profiles.php?XID=2272881">cliffyd</a>': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 0, Xanax: 0 },
  '<a href = "http://www.torn.com/profiles.php?XID=2172188">BitMappedIn</a>': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 4, Xanax: 0 },
  '<a href = "http://www.torn.com/profiles.php?XID=767572">pilsner</a>': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 3, Xanax: 0 },
  '<a href = "http://www.torn.com/profiles.php?XID=2179037">Bantor</a>': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 10, Xanax: 0 },
  '<a href = "http://www.torn.com/profiles.php?XID=536670">chef</a>': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 0, Xanax: 0 },
  '<a href = "http://www.torn.com/profiles.php?XID=2283920">Yakob</a>': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 0, Xanax: 0 } ]

И вот что я хотел бы увидеть:

[ 'Rum': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 11, Xanax: 0 },
  'cliffyd': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 0, Xanax: 0 },
  'BitMappedIn': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 4, Xanax: 0 },
  'pilsner': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 3, Xanax: 0 },
  'Bantor': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 10, Xanax: 0 },
  'chef': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 0, Xanax: 0 },
  'Yakob': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 0, Xanax: 0 } ]

Ответы [ 2 ]

2 голосов
/ 02 мая 2019

Данные входные и выходные данные недопустимы.Это должен быть объект. Вы можете использовать Object.fromEntries() для изменения ключей объекта.Используйте map() на Object.entries() и измените ключ.

const obj = {'<a href = "http://www.torn.com/profiles.php?XID=2181524">Rum</a>': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 11, Xanax: 0 }, '<a href = "http://www.torn.com/profiles.php?XID=2272881">cliffyd</a>': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 0, Xanax: 0 }, '<a href = "http://www.torn.com/profiles.php?XID=2172188">BitMappedIn</a>': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 4, Xanax: 0 }, '<a href = "http://www.torn.com/profiles.php?XID=767572">pilsner</a>': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 3, Xanax: 0 }, '<a href = "http://www.torn.com/profiles.php?XID=2179037">Bantor</a>': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 10, Xanax: 0 }, '<a href = "http://www.torn.com/profiles.php?XID=536670">chef</a>': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 0, Xanax: 0 }, '<a href = "http://www.torn.com/profiles.php?XID=2283920">Yakob</a>': { Refill: 0, SFAK: 0, FAK: 0, BloodBag: 0, Morphine: 0, Xanax: 0 } }

const matchKey = (str) => str.match(/>=?(.+)?</g)[0].slice(1,-1);
  
const res = Object.fromEntries(Object.entries(obj).map(([k,v]) => [matchKey(k),v]));

console.log(res)
0 голосов
/ 21 июня 2019

Забыл об этом ... Это маршрут, по которому я закончил, отлично подходит для моего использования.

fixedData = {};
for (let name in tableData) {
const stripHtml = name.match(/\>(.*?)</g)[0];
const playerName = stripHtml.slice(1, stripHtml.length - 1)
fixedData[playerName] = tableData[name]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...