function category_array() {
var send_array = Array();
var send_cnt = 0;
var chkbox = $('input[name="category[]"]:checked');
for(i=0;i<chkbox.length;i ) {
if (chkbox[i].checked == true){
send_array[send_cnt] = chkbox[i].value;
send_cnt ;
}
}
console.log(send_array);
$("#category_list").val(send_array);
}
現在結果是 ['men_a', 'men_b', 'mem_c', 'woman_a', 'woman_d']
我想要什么{男人:[a,b,c],女人:[a,d]}
怎么做 ?
uj5u.com熱心網友回復:
回圈arr,如果gendre 是男性else 到second,則獲取gendre和它value并將它們添加到第一個res變數中。
const arr = ["men_a", "men_b", "mem_c", "woman_a", "woman_d"];
const res = [[], []];
for (person of arr) {
const [gendre, value] = person.split("_");
if (gendre == "men") res[0].push(value);
else res[1].push(value);
}
console.log(JSON.stringify(res)); // [["a","b"],["c","a","d"]]
更新以將值存盤在物件而不是陣列中
const arr = ["men_a", "men_b", "mem_c", "woman_a", "woman_d"];
const res = {'men':[],'women':[]};
for (person of arr) {
const [gendre, value] = person.split("_");
if (gendre == "men") res['men'].push(value);
else res['women'].push(value);
}
console.log(JSON.stringify(res)); // {"men":["a","b"],"women":["c","a","d"]}
uj5u.com熱心網友回復:
您需要初始化send_array為一個物件,而不是一個陣列。
然后拆分_字符處的值,并使用第一部分作為物件鍵,并將第二部分推入該鍵處的陣列中。
function category_array() {
var send_array = {};
var chkbox = $('input[name="category[]"]:checked');
chkbox.each((i, box) => {
let [gender, item] = box.value.split('_');
if (send_array[gender]) {
send_array[gender].push(item);
} else {
send_array[gender] = [item];
}
});
console.log(send_array);
$("#category_list").val(JSON.stringify(send_array));
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Men A <input type="checkbox" name="category[]" value="men_a">
Men B <input type="checkbox" name="category[]" value="men_b">
Men C <input type="checkbox" name="category[]" value="men_c">
Men D <input type="checkbox" name="category[]" value="men_d">
<br>
Women A <input type="checkbox" name="category[]" value="women_a">
Women B <input type="checkbox" name="category[]" value="women_b">
Women C <input type="checkbox" name="category[]" value="women_c">
Women D <input type="checkbox" name="category[]" value="women_d">
<input type="text" id="category_list">
<button type="button" onclick="category_array()">Click</button>
uj5u.com熱心網友回復:
查看代碼中的注釋:
function category_array() {
var send_array = {};
var chkbox = $('input[name="category[]"]:checked');
for(i=0;i<chkbox.length;i ) {
// no need to check that it's checked, you already checked that (in the selector)
[gender,val] = chkbox[i].value.split("_"); // assuming input is always valid here (it won't be
send_array[gender] = send_array[gender] || [] // make sure it exists
send_array[gender].push(val) // add the new value
}
console.log(send_array);
$("#category_list").val(JSON.stringify(send_array)); // you can't assign an object as a node's value
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/362143.html
標籤:javascript
上一篇:從表中洗掉元素的洗掉函式
