From ee7af7e408ce3a16aecbd6955077b93ab7fe0dbf Mon Sep 17 00:00:00 2001 From: Helloworld <1326521+LYZhelloworld@users.noreply.github.com> Date: Mon, 30 May 2022 10:32:56 +0800 Subject: [PATCH] Use array manipulation --- tools/CopilotDesinger/index.js | 36 ++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/tools/CopilotDesinger/index.js b/tools/CopilotDesinger/index.js index c103cf783d..f830494b1b 100644 --- a/tools/CopilotDesinger/index.js +++ b/tools/CopilotDesinger/index.js @@ -42,9 +42,9 @@ const direction = () => { '' + '' + ''); -} +}; -const oper = (oper_data, delete_func) => { +const oper = (oper_data, arr, delete_callback) => { const tr = $(''); // 干员名字 const name_input = input_oper_name() @@ -63,7 +63,10 @@ const oper = (oper_data, delete_func) => { .change(function () { oper_data.skill_usage = Number($(this).val()); }); tr.append($('').append(skill_usage_input)); // 删除 - tr.append($('').append(delete_icon().click(delete_func))); + tr.append($('').append(delete_icon().click(() => { + arr = arr.filter(o => o !== oper_data); + delete_callback(arr); + }))); return tr; } @@ -144,7 +147,7 @@ const action = (action_data) => { return tr; }; -const group = (group_data, delete_func) => { +const group = (group_data, arr, delete_callback) => { // 群组名 const name_div_row = $('
'); const name_div_col = $('
'); @@ -153,7 +156,10 @@ const group = (group_data, delete_func) => { .change(function () { group_data.name = $(this).val(); }); name_div_col.append(name_input); const delete_col = $('
'); - delete_col.append(delete_icon().click(delete_func)); + delete_col.append(delete_icon().click(() => { + arr = arr.filter(o => o !== group_data); + delete_callback(arr); + })); name_div_row.append(name_div_col).append(delete_col); // 群组干员列表 @@ -195,16 +201,20 @@ const loadData = () => { // TODO: requirements $('#opers tbody').html(''); - (data.opers ?? []).forEach(oper_data => $('#opers tbody').append(oper(oper_data, () => { - data.opers = data.opers.filter(o => o !== oper_data); - loadData(); - }))); + (data.opers ?? []).forEach(oper_data => $('#opers tbody').append( + oper(oper_data, data.opers, (new_arr) => { + data.opers = new_arr; + loadData(); + }) + )); $('#groups').html(''); - (data.groups ?? []).forEach(group_data => $('#groups').append(group(group_data, () => { - data.groups = data.groups.filter(g => g !== group_data); - loadData(); - }))); + (data.groups ?? []).forEach(group_data => $('#groups').append( + group(group_data, data.groups, (new_arr) => { + data.groups = new_arr; + loadData(); + }) + )); $('#actions tbody').html(''); (data.actions ?? []).forEach(action_data => $('#actions tbody').append(action(action_data)));