我有一個陣列:
const savings = [" 10$", "-22.50$", " 5$", " 22.40$", "-3.5$"];
我只想顯示特定范圍的陣列索引中的元素。例如:如何顯示陣列索引 1 (-22.50$) 和陣列索引 3 ( 22.50$) 之間的所有內容?應洗掉所有具有較低或較高索引的元素。
uj5u.com熱心網友回復:
有很多方法可以做到:
切片(回傳新陣列)
savings.slice(1,4) // ['-22.50$', ' 5$', ' 22.40$']
splice(修改陣列)
savings.splice(1,3) // ['-22.50$', ' 5$', ' 22.40$']
...加上許多其他更復雜的技術,包括但不限于:
過濾器(回傳新陣列)
在這種情況下,它實際上只是一個.slice.
// ['-22.50$', ' 5$', ' 22.40$']
savings.filter((price, index) => index >= 1 && index <= 4)
uj5u.com熱心網友回復:
您可以使用陣列的 filter 方法。
這是代碼片段。
該newArray會抱著你所需要的價值。
const savings = [" 10$", "-22.50$", " 5$", " 22.40$", "-3.5$"];
const newArray = savings.filter((value, index, array) => {
num = parseFloat(value.slice(0, value.length - 1)); // convert string into number to compare.
min = parseFloat(array[1].slice(0, array[1].length - 1)); // convert string into number to compare.
max = parseFloat(array[3].slice(0, array[3].length - 1)); // convert string into number to compare.
if (value < min || value > max) { // check required condition
return false;
}
return true;
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/341257.html
標籤:javascript 数组 ecmascript-6 筛选
上一篇:串列陣列中的線性搜索
