我正在设置一个jquery函数以将数组输出到<textarea>
,
然后,所有值都用.join(\n\r)
分隔,尽管我希望使用.join(\n\r)
来代替值,而我选择的值使用.join()
来代替
我试图使用.filter(x => typeof x === 'smeAssist')
来尝试仅使用'smeAssist'使用.join()
,尽管这似乎过滤了所有内容,但我认为我使用的方式不正确?
$('#formOut').click(function() {
const ret = [
{id: 'yesCheck', label: 'TL or SME Assistance'},
{id: 'noCheck', label: 'TL or SME Assistance'},
{id: 'smeAssist', label: ''}
].reduce((memo, {id, label, linebreak}) => {
const val = $(`#${id}`).val();
if (val) {
if (linebreak && memo.length) {
memo.push('-------------------------------------------------------')
}
if($(id == 'yesCheck' && '#yesCheck').is(':checked')) {
memo.push(`${label}: ${"Yes"}`); return memo;
}
if($(id == 'yesCheck' && '#yesCheck').is(':not(:checked)')) {
return memo;
}
if($(id == 'noCheck' && '#noCheck').is(':checked')) {
memo.push(`${label}: ${"No"}`); return memo;
}
if($(id == 'noCheck' && '#noCheck').is(':not(:checked)')) {
return memo;
}
if($(id == "smeAssist" && '#yesCheck').is(':checked')) {
memo.push(`|${val}`); return memo;
}
if($(id == "smeAssist" && '#yesCheck').is(':not(:checked)')) {
return memo;
}
else memo.push(`${label}: ${val}`);
}
return memo;
}, []).join('\n\r');
当前结果
TL or SME Assistance: Yes
|Test
我正在尝试在任何选定的id
TL or SME Assistance: Yes | Test