Javascript 如何从数组中获取值,只有那些大于数组右边所有元素的值

Javascript 如何从数组中获取值,只有那些大于数组右边所有元素的值,javascript,arrays,Javascript,Arrays,我想写一个函数来得到所有的数字,比它右边的所有元素都大 示例如果我有这样一个数组: arr = [ 75,47,42,56,13,55]; arr = [16,17,14,3,14,5,2] 我希望在一个新数组中得到这样一个结果[75,56,55] 其他示例如果我有这样一个数组: arr = [ 75,47,42,56,13,55]; arr = [16,17,14,3,14,5,2] 我想要的结果是:[17,14,5,2] 无论数组中有多少数字,我都可以使用什么方法来获得此结果?一个简

我想写一个函数来得到所有的数字,比它右边的所有元素都大

示例如果我有这样一个数组:

arr = [ 75,47,42,56,13,55];
arr = [16,17,14,3,14,5,2]
我希望在一个新数组中得到这样一个结果
[75,56,55]

其他示例如果我有这样一个数组:

arr = [ 75,47,42,56,13,55];
arr = [16,17,14,3,14,5,2]
我想要的结果是:
[17,14,5,2]


无论数组中有多少数字,我都可以使用什么方法来获得此结果?

一个简单的
for
循环,其中内部循环的索引从右值最高的匹配的索引值开始:

var-arr=[75,47,42,56,13,55];
var-res=[];

对于(var i=0;i试试这个。只需从右侧开始检查。保留一个变量max,并在找到新的max时更新它

var-arr=[75,47,42,56,13,55];
函数findMaxRight(arr){
var res=[]
var max=Number.MIN\u安全\u整数
对于(变量i=arr.length-1;i>=0;i--){
如果(arr[i]>最大值){
解除移位(arr[i])
max=arr[i]
}
}
返回res
}

console.log(findMaxRight(arr));
您可以使用
过滤器
阵列。
拼接
阵列以获取右侧的所有数字。使用
每个
检查是否所有阵列元素都大于该值

让arr=[75,47,42,56,13,55];
设结果=arr.filter((v,i,a)=>[…a]。拼接(i+1,a.length)。每隔(o=>v>o));

console.log(result);
一种方法是循环数组,获取当前项,并在使用当前项之后获取数组的其余部分

然后对数组的其余部分进行降序排序,得到第一个条目,即最高的条目

如果当前值大于最高值,则大于右侧的所有值:

let items=[75,47,42,56,13,55];
让结果=[];
items.forEach((项目,索引)=>{
标题=项目[索引];
让tail=items.slice(索引+1).sort(函数(a,b){
返回b-a;
});
if((head>tail[0])| |(index==items.length-1)){
结果:推(头);
}
});

console.log(result);
我的解决方案是:找到
max
,如果它是当前数字,则存储它,继续使用新数组
looping=looping.slice(1)


您可以简单地从右侧迭代,并对照最新发现的最大值进行检查

函数greaterThanRight(数组){

return array.reduceRight((r,v)=>[].concat(v a.join(“”));
请编辑您的问题,将您目前编写的代码包括在内。array.sort应该帮助您=>您的预期数组不应该是
[75,47,56,55]
因为
47
42
它必须大于其右侧的所有元素这是
的典型任务
你怎么能说你需要从数组中精确地分割出3个元素?哦,我看到了RedruM post,这让我很困惑,对不起。你需要获得数组中的最高数字吗?Bruno-因为你的问题是对你答案的评论,你需要引起发布问题的人的注意。你的评论可以从他的na中的-@开始我-像
@RedruM你需要…?