在页面中我有以下部分:
<section id="questions-688">
</section>
<section id="test">
</section>
<section id="stats-688">
</section>
<section id="answers-636">
</section>
<section id="someDiv">
</section>
我想用这些数字创建一个数组:[688,636]。因此,当部分的id以问题或答案或统计数据开始时,我想将数字属于此ID添加到数组中,但仅限ONCE。我怎么能通过javascript做到这一点?
这是创建数组[688,688,636]的函数,但我需要[688,636]。
var selector = 'section[id^=stats-],section[id^=answers-],section[id^=questions-]';
segments = Array.prototype.map.call(document.querySelectorAll(selector), function (section) {
return section.id.split('-')[1]|0;
});
我该怎么做?
答案 0 :(得分:1)
使用indexOf方法的简单for循环将帮助您:
var sections = document.querySelectorAll('section[id^=stats-],section[id^=answers-],section[id^=questions-]'),
segments = [];
for (var i = 0; i < sections.length; i++) {
var split = sections[i].id.split('-');
if (segments.indexOf(split[1]) == -1) {
segments.push(split[1]);
}
}
答案 1 :(得分:0)
如果数组存在,则数组方法indexOf将返回找到该元素的第一个索引,否则返回-1(如果该元素不存在)。
var someArray = [688, 636];
if(!someArray.indexOf(688)) {
someArray.push(688);
}