我的代码旨在获取最少的元素并将其从数组中删除,然后返回修改后的数组。但是在这种情况下 我的代码应该从该数组中删除68
//[568,333,153,68,359,130,308,323,169]
然后返回
//[568,333,153,359,130,308,323,169]
但从第一个元素中删除68(568)并返回
//[5,333,153,68,359,130,308,323,169]
请我需要有关如何解决此问题的帮助
这是我的代码
function remove(arr) {
let least = Math.min(...arr);
let strArr = arr.join(' ');
let regex = new RegExp(least);
let newArr = strArr.replace(regex, '').split(' ');
return (newArr.filter((arr) => {
if ((isNaN(arr) !== true) || arr !== undefined || arr !== ' ') {
return arr;
}
}).map((arr) => parseInt(arr)));
}
remove([568, 333, 153, 68, 359, 130, 308, 323, 169]);
// Returns [5,333,153,68,359,130,308,323,169] instead of
// [568,333,153,359,130,308,323,169]
答案 0 :(得分:4)
您可以使用Filter
let values = [568,333,153,68,359,130,308,323,169];
let filtered = values.filter( item => item !== 68 );
console.log(filtered)
答案 1 :(得分:1)
只需使用数组过滤器,它将返回一个没有68的新数组
let x = [568, 333, 153, 68, 359, 130, 308, 323, 169];
let y = x.filter((item) => {
return item !== 68
})
console.log(y)
答案 2 :(得分:1)
您可以使用拼接来删除最小值
function remove (arr) {
let least = Math.min(...arr);
let index = arr.indexOf(least);
if (index > -1) {
arr.splice(index, 1);
}
return arr;
}
console.log(remove([568,333,153,68,359,130,308,323,169]));