【发布时间】:2021-09-25 01:38:21
【问题描述】:
按照上一个查询:
Javascript - map(function) return this.value - comma on wrong side
我有我想要区分的元素之一。 也就是说,我想要这个对象后面的“ - ”元素。
我在这里找到了一些解决方案:
Javascript Map Array Last Item
并试图摆弄我的代码,但不幸的是没有用。
HTML:
<fieldset id="ophealth_safety">
<div>
<input type="checkbox" id="opladdert" name="health_safety" value="Triple ladders">
<label class="checking" for="opladder">Triple Ladders</label>
</div>
<div>
<input type="checkbox" id="opgardens" name="health_safety" value="Access private gardens required">
<label class="checking" for="opgardens">Access private gardens required</label>
</div>
<div>
<input type="checkbox" id="opskylight" name="health_safety" value="Skylight">
<label class="checking" for="opskylight">Skylight</label>
</div>
<div>
<input type="checkbox" id="oploft" name="health_safety" value="Access Loft">
<label class="checking" for="oploft">Access Loft</label>
</div>
<div>
<input type="checkbox" id="oproof" name="health_safety" value="Access to roof">
<label class="checking" for="oproof">Access to roof</label>
</div>
<div>
<input type="checkbox" id="opother" name="health_safety" value="Other">
<label class="checking" for="opother">Other</label>
<input type="text" id="opotherdesc" name="other" pattern="[A-Za-z].{4,}" title="The text should include at least 4 letters" placeholder="Please specify">
</div>
</fieldset>
JAVASCRIPT:
var healthSafety = $('input:checkbox[name=health_safety]:checked').map(function() {
const lastIndex = row.length - 1;
row.map((rank, i) => {
if (i === lastIndex) {
.join(" - ")
} else {
return this.value;
}).get().join(", ")
});
我目前有:
健康和安全:需要进入私人花园、进入阁楼、其他天花板
我想要这样的东西:
健康和安全:需要进入私人花园,进入阁楼,其他 - 天花板
我的代码中缺少什么?
【问题讨论】:
-
请重新格式化您的 html 代码,以便代码具有更好的可读性。谢谢。
-
如果
.map()的回调没有在每个路径中都返回一个值,或者如果您不使用.map()的返回值,那么.map()不是正确的工具。 -
为什么要嵌套 maps()?很难理解发生了什么?
-
row.slice(0, -1).join(", ") + " - " + row.slice(-1)或只是一个普通的旧for循环,或.reduce(),或... -
我已经格式化了 HTML 代码
标签: javascript html