Javascript JS:从数组中的特定字符串中删除重复的值
以下是我的数组列表:Javascript JS:从数组中的特定字符串中删除重复的值,javascript,arrays,Javascript,Arrays,以下是我的数组列表: ['<h3>Goalkeepers</h3><a href="#" data-id="44">Lewis Cardiff City £4.00</a>', '<h3>Goalkeepers</h3><a href="#" data-id="42">Given Aston Villa £4.00</a>', '<h3>Goalke
['<h3>Goalkeepers</h3><a href="#" data-id="44">Lewis Cardiff City £4.00</a>',
'<h3>Goalkeepers</h3><a href="#" data-id="42">Given Aston Villa £4.00</a>',
'<h3>Goalkeepers</h3><a href="#" data-id="36">Robles Everton £4.30</a>']
[“守门员”,
“守门员”,
“守门员”]
我想删除只包含''
标记之间的重复值
我的期望是这样的:
['<h3>Goalkeepers</h3><a href="#" data-id="44">Lewis Cardiff City £4.00</a>',
'<a href="#" data-id="42">Given Aston Villa £4.00</a>',
'<a href="#" data-id="36">Robles Everton £4.30</a>']
var data = {
Goalkeepers: [
{url: '#', id: 44, name: "Lewis Cardiff City", bribe: 4.00},
{url: '#', id: 42, name: "Given Aston Villa", bribe: 4.00},
{url: '#', id: 46, name: "Robles Everton", bribe: 4.00},
],
Shoplifters: [
// ...
],
// etc.
};
[“守门员”,
'',
'']
尝试了.reduce、.map、.filter方法来解决此问题。但是没有运气。
有人请帮帮我
谢谢 快速回答:
function removeDuplicates(a) {
var first = null;
return a.map(function(item) {
var h3 = item.match(/^<h3>([^<]+)<\/h3>/);
if(first && first === h3[1]) return item.slice(h3[0].length);
else {
first = h3[1];
return item;
}
});
}
这可以作为JSON从服务器检索,并在JSON.parse()的帮助下直接使用。您还可以从任何其他数据生成这种结构
然后,在需要在网页上呈现时生成HTML。比如:
function dataToHTML(d) {
var out = "";
for(var section in data) {
if(!data.hasOwnProperty(section)) continue;
out += "<h3>" + section + "</h3>";
out += data[section].map(function(item){
return "<a href=\"" + item.url + "\" data-id=\"" + item.id + "\">" + item.name + " £" + item.bribe + "</a>";
}).join('');
}
return out;
}
dataToHTML(data); // -> HTML string
函数dataToHTML(d){
var out=“”;
for(数据中的var部分){
如果(!data.hasOwnProperty(节))继续;
输出+=“”+节+“”;
out+=数据[节].map(函数(项){
返回“”;
}).加入(“”);
}
返回;
}
dataToHTML(数据);//->HTML字符串
但是,这看起来几乎像一个粗糙的模板,所以您可能需要一些更优雅的东西,比如下划线模板:
使用数据而不是字符串的程序;) 简单方法
const arr=[“红色”、“粉色”、“粉色”、“绿色”、“黄色”、“红色”、“蓝色”];
控制台日志([…新设置(arr)])
所以想要的h3
总是在数组的第一个元素中?没错。将始终位于阵列的第一个元素中。但不是其他元素。您是如何尝试减少和映射的?给我们看看你的代码。谢谢你!nooga!。非常感谢您的最新代码,我有一个错误:uncaughttypeerror:Object#没有方法“map”,因为数据就是对象。不是数组?