如果在我的資料中包含某個值,則嘗試洗掉整個陣列。
解決這個問題的最佳方法是什么?
data = [['true', 'visiting-today', 'DVM-Wiessman','J-001'],
['false', 'visiting-tommorrow', 'DVM-Stevens','K-001'],
['true', 'visiting-tommorrow', 'DVM-Stevens','Z-001'],
['false', 'visiting-tommorrow', 'DVM-Kon','J-001']]
var del_value = 'J-001';
function remove_from_list(list) {
for( var i = 0; i < list.length; i ) {
for( var j =0; j < Object.keys(list[i]).length.length; j ) {
if(del_value == list[i][j]) {
list.splice(list[i], 1);
}
}
}
return list;
}
實際輸出
data =
[['true', 'visiting-today', 'DVM-Wiessman','J-001'],
['false', 'visiting-tommorrow', 'DVM-Stevens','K-001'],
['true', 'visiting-tommorrow', 'DVM-Stevens','Z-001'],
['false', 'visiting-tommorrow', 'DVM-Kon','J-001']]
期望的結果——洗掉所有具有值的陣列 'J-001'
data =
[['false', 'visiting-tommorrow', 'DVM-Stevens','K-001'],
['true', 'visiting-tommorrow', 'DVM-Stevens','Z-001']]
uj5u.com熱心網友回復:
const data = [['true', 'visiting-today', 'DVM-Wiessman','J-001'],
['false', 'visiting-tommorrow', 'DVM-Stevens','K-001'],
['true', 'visiting-tommorrow', 'DVM-Stevens','Z-001'],
['false', 'visiting-tommorrow', 'DVM-Kon','J-001']];
const input = "J-001";
// Approach
// Filter element (use filter) who has not given input (use not includes for this)
const result = data.filter(dat => !dat.includes(input));
console.log(result);
過濾器 包括
uj5u.com熱心網友回復:
您可以使用array#filterandarray#includes來基于不包括J-001.
const data = [['true', 'visiting-today', 'DVM-Wiessman','J-001'], ['false', 'visiting-tommorrow', 'DVM-Stevens','K-001'], ['true', 'visiting-tommorrow', 'DVM-Stevens','Z-001'], ['false', 'visiting-tommorrow', 'DVM-Kon','J-001']],
result = data.filter(arr => !arr.includes('J-001'));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
如果元素的位置固定為第三。然后您可以直接使用比較該索引處的值。
顯示代碼片段
const data = [['true', 'visiting-today', 'DVM-Wiessman','J-001'], ['false', 'visiting-tommorrow', 'DVM-Stevens','K-001'], ['true', 'visiting-tommorrow', 'DVM-Stevens','Z-001'], ['false', 'visiting-tommorrow', 'DVM-Kon','J-001']],
result = data.filter(arr => arr[3] !== 'J-001');
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
uj5u.com熱心網友回復:
使用Array.filter()和 的替代方法Array.find()。
data = [['true', 'visiting-today', 'DVM-Wiessman','J-001'],
['false', 'visiting-tommorrow', 'DVM-Stevens','K-001'],
['true', 'visiting-tommorrow', 'DVM-Stevens','Z-001'],
['false', 'visiting-tommorrow', 'DVM-Kon','J-001']];
function removeFromList(list, delValue) {
return list.filter(arr => !arr.find(value => value === delValue));
}
console.log(removeFromList(data, 'J-001'));
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/414920.html
標籤:
