选中的复选框的值与数组交叉匹配以过滤结果。如何选择价格
和手数
值?
var inputElements = document.getElementsByName("fruits");
const item = [
{"lychee":{ price:10, lot:8}},
{"orange" :{ price:12, lot:6}},
{"apple" :{ price:8, lot:3}},
{"mango" :{ price:12, lot:5}},
{"banana" :{ price:4, lot:1}}];
var checked = [...inputElements].map(item => {
if(item.checked){
return item.value
}
}).filter(item => item);
console.log(checked);
<input type="checkbox" name="fruits" value="lychee" checked>
<input type="checkbox" name="fruits" value="orange">
最佳答案
带有适当选择器的querySelectorAll将为您提供选中的值:
注意我从对象数组更改为普通对象
const item = {
"lychee": {"price": 10,"lot": 8},
"orange": {"price": 12,"lot": 6},
"apple": {"price": 8, "lot": 3},
"mango": {"price": 12,"lot": 5},
"banana": {"price": 4, "lot": 1}
};
let res = [...document.querySelectorAll("[name=fruits]:checked")]
.map(chk => `${chk.value},lot:${item[chk.value].lot}, price:${item[chk.value].price}`);
document.getElementById("res").innerHTML = res.join("<br/>");
<input type="checkbox" name="fruits" value="lychee" checked> lychee <br />
<input type="checkbox" name="fruits" value="orange"> orange <br />
<input type="checkbox" name="fruits" value="banana" checked> banana <br />
<br/>
<span id="res"></span>
关于javascript - 通过匹配数组检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56173440/