我有一个数组,如果我删除一个特定的元素,它将删除它,但是稍后,如果我再次删除另一个元素,新选择的元素将被删除,但是以前删除的元素将会出现,如图5所示。
首先参考上面的图片,我从阵列中删除了电话,然后我删除了已禁用帐户,但在第二张表中,先前删除的元素电话 >仍然存在
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);
}
答案 0 :(得分:2)
从问题中不确定您要做什么,但这应该从原始数组中删除所需的项。警告-可能包含错误/错误,但是Array.prototype.splice会从数组中删除项目。
var selectedOpts = $('#lstBox1 option:selected');
var text = selectedOpts.val();
var colData = [];
this.firmData.forEach(function (dta) {
colData.push(dta.DisplayName);
})
function findItem(item) {
return item == text;
}
colData.splice(colData.findIndex(findItem), 1);
console.table(colData)
console.log(text);
答案 1 :(得分:0)
.filter
请勿从数组中删除项目
要删除数组中的项目,您可以
colData.splice(colData.indexOf(text), 1)
实时演示
var colData = ['a', 'b', 'c', 'd'];
const removeItem = value => {
let arr = colData.splice(colData.indexOf(value), 1);
return arr;
}
removeItem('a');
removeItem('d');
console.log(colData);