我有一个数组,如果我删除一个特定的元素,它将被删除,但是如果稍后我再次删除另一个元素,则新选择的元素将被删除,但以前删除的元素将存在,如图所示。
请参考上图,首先我从数组中删除了phone,然后我删除了Account Disabled,但在第二个表格中,先前删除的元素phone仍然存在。
var selectedOpts = $('#lstBox1 option:selected');
var text = selectedOpts.val();
var colData = [];
this.firmData.forEach(function (dta) {
colData.push(dta.DisplayName);
})
const removeItem = value => colData.filter(item => item !== value)
console.table(removeItem(text))
console.log(text);
更新
实际需求
我需要在移动数据的同时将其从数组中删除,目前只能追加这些值,但无法从数组中删除它们。第一列HTML
<div class="menu">
<select multiple="multiple" id='lstBox1' >
</select>
</div>
第一列JS代码
self.firmData.forEach(function (data) {
$("#lstBox1").append($('<option class="items">').text(data.DisplayName).attr('value', data.DisplayName));
});
第二列HTML
<div class="menu">
<select multiple="multiple" id='lstBox2' >
</select>
</div>
第二列的JS代码
self.data.forEach(function (data) {
$("#lstBox2").append($('<option class="items">').text(data.columnsexpo).attr('value', data.columnsexpo));
});
"click #btnRight": function(e){
var selectedOpts = $('#lstBox1 option:selected');
var text = selectedOpts.val();
$('#lstBox2').append($(selectedOpts).clone())
this.data.push(columnsexpo: text);
}
"click #btnLeft": function(e){
var selectedOpts = $('#lstBox2 option:selected');
var text = selectedOpts.val();
$('#lstBox1').append($(selectedOpts).clone())
this.data.push(columnsexpo: text);
}
colData
,它只是过滤掉没有你不想要的项目并返回一个数组。 - MousercolData
),并且是从colData
中删除而不是从原始数据中删除,因此每次运行代码时,都会得到一个新的数据数组。 - Valeklosse