Javascript 在子数组中查找最大数有困难
这是我目前的代码:Javascript 在子数组中查找最大数有困难,javascript,arrays,Javascript,Arrays,这是我目前的代码: var largestNumbers = new Array(4); function largestOfFour(arr) { var biggest = Math.max.apply(null, largestOfFour) for (var index in arr) { for(var i=0; i < arr[index].length; i++){ if (arr[index] > bigge
var largestNumbers = new Array(4);
function largestOfFour(arr) {
var biggest = Math.max.apply(null, largestOfFour)
for (var index in arr) {
for(var i=0; i < arr[index].length; i++){
if (arr[index] > biggest){
arr[index].push(largestNumbers);
}
else if (arr[index] < biggest) {
arr[index].splice(0, 1);
}
}
}
return largestNumbers;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
var largestNumbers=新数组(4);
功能最大四(arr){
var max=Math.max.apply(null,最大四个)
对于(arr中的var指数){
对于(var i=0;i最大值){
arr[index].push(最大数);
}
else if(arr[索引]<最大值){
arr[index].拼接(0,1);
}
}
}
返回最大的数字;
}
最大的四个([[4,5,1,3],[13,27,18,26],[32,35,37,39],[10001001857,1]);
我的目标是找到每个子数组中的最大值,然后将这些值放入另一个数组,然后返回该值。我一直在四处寻找“如何从阵列中提取子阵列”之类的东西,这导致我使用了拼接功能。我不确定我是否正确使用了它,但我正在尽我所能,因为我已经在这个问题上坚持了两天了。如果有人能引导我走上解决这个问题的道路,我将不胜感激。非常感谢大家
此外,我还利用这个网站来引导我前进。在页面的后半部分,有一段代码试图解决与我类似的问题 只需使用一个简单的嵌套循环即可。找到每个内部数组的最大数字并将其添加到结果中:
function largestOfFour(arr) {
var result = [];
for(var i = 0; i < arr.length; i++){
var max = 0;
var inner = arr[i];
for(var j = 0; j < inner.length; j++){
if(inner[j] > max)
max = inner[j];
}
result.push(max);
}
return result;
}
var output = largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
// [5, 27, 39, 1001]
函数最大四(arr){
var结果=[];
对于(变量i=0;i最大值)
最大值=内部[j];
}
结果:推力(最大值);
}
返回结果;
}
var输出=最大的四个([[4,5,1,3],[13,27,18,26],[32,35,37,39],[10001001857,1]);
// [5, 27, 39, 1001]
只需使用一个简单的嵌套循环即可。找到每个内部数组的最大数字并将其添加到结果中:
function largestOfFour(arr) {
var result = [];
for(var i = 0; i < arr.length; i++){
var max = 0;
var inner = arr[i];
for(var j = 0; j < inner.length; j++){
if(inner[j] > max)
max = inner[j];
}
result.push(max);
}
return result;
}
var output = largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
// [5, 27, 39, 1001]
函数最大四(arr){
var结果=[];
对于(变量i=0;i最大值)
最大值=内部[j];
}
结果:推力(最大值);
}
返回结果;
}
var输出=最大的四个([[4,5,1,3],[13,27,18,26],[32,35,37,39],[10001001857,1]);
// [5, 27, 39, 1001]
var largestNumbers=new Array();
功能最大四(arr){
对于(变量i=0;i
var largestNumbers=new Array();
功能最大四(arr){
对于(变量i=0;i
- 用于通过在第一级上循环来创建新阵列
- 用于从数字列表中获取最大值
- 用于将数组转换为Math.max中的参数
函数最大四(arr){
返回arr.map(函数(数组){
返回Math.max.apply(数学,数组)
});
}
var myArray=[
[4, 5, 1, 3],
[13, 27, 18, 26],
[32, 35, 37, 39],
[1000, 1001, 857, 1]
];
log(最大四个(myArray))代码>
- 用于通过在第一级上循环来创建新阵列
- 用于从数字列表中获取最大值
- 用于将数组转换为Math.max中的参数
函数最大四(arr){
返回arr.map(函数(数组){
返回Math.max.apply(数学,数组)
});
}
var myArray=[
[4, 5, 1, 3],
[13, 27, 18, 26],
[32, 35, 37, 39],
[1000, 1001, 857, 1]
];
log(最大四个(myArray))代码>使用Math.max.apply()的方法,您可以使用一个循环作为参数遍历数组
function largestOfFour(arr){
var result = [];
for(var i = 0 ; i < arr.length ; i++){
result[i] = Math.max.apply(null, arr[i]);
}
return result;
}
函数最大四(arr){
var结果=[];
对于(变量i=0;i
编辑:
正如@Jeff Shaver发布的,您应该使用函数返回结果数组。使用Math.max.apply()方法,您可以使用一个循环作为参数遍历数组
function largestOfFour(arr){
var result = [];
for(var i = 0 ; i < arr.length ; i++){
result[i] = Math.max.apply(null, arr[i]);
}
return result;
}
function largestOfFour(arr) {
return arr.reduce(function(p, c, index, arr){
p.push(Math.max.apply(null, c));
return p;
}, []);
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
函数最大四(arr){
var结果=[];
对于(变量i=0;i
编辑:
正如@Jeff Shaver发布的,您应该使用该函数返回结果数组。即使您也可以这样编码,创建一个新数组,显示在它们中
function largestOfFour(arr) {
return arr.reduce(function(p, c, index, arr){
p.push(Math.max.apply(null, c));
return p;
}, []);
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
function largestOfFour(arr) {
// You can do this!
var newArray=[];
for(i=0;i<arr.length;i++){
newArray.push(Math.max.apply(Math,arr[i]));
}
return newArray;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
函数最大四(arr){
//你能做到!
var newArray=[];
对于(i=0;i,即使您也可以这样编码,创建一个新的数组来显示它们
function largestOfFour(arr) {
// You can do this!
var newArray=[];
for(i=0;i<arr.length;i++){
newArray.push(Math.max.apply(Math,arr[i]));
}
return newArray;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
函数最大四(arr){
//你能做到!
var newArray=[];
对于(i=0;i应用简单嵌套循环逻辑
function largestOfFour(arr) {
var maxArray = [];
for(var i = 0; i < arr.length; i++) {
var maxE = 0;
for(var j = 0; j < arr.length; j++) {
if(maxE < arr[i][j]) {
maxE = arr[i][j];
}
}
maxArray.push(maxE);
}
arr = maxArray;
return arr;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
函数最大四(arr){
var maxArray=[];
对于(变量i=0;i
或者试试这个
function largestOfFour(arr) {
var maxArray = [];
for(var i = 0; i < arr.length; i++) {
var maxE = Math.max(...arr[i]); // this spread is only available in ES6 so can be replaced by --> Math.max.apply(null, arr[i])
maxArray.push(maxE);
}
arr = maxArray;
return arr;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
函数最大四(arr){
var maxArray=[];
对于(变量i=0;iMath.max.apply(null,arr[i])替换
maxArray.push(maxE);
}
arr=maxArray;
返回arr;
}
最大的四个([[4,5,1,3],[13,27,18,26],[32,35,37,39],[10001001857,1]);
应用简单嵌套循环的逻辑
function largestOfFour(arr) {
var maxArray = [];
for(var i = 0; i < arr.length; i++) {
var maxE = 0;
for(var j = 0; j < arr.length; j++) {
if(maxE < arr[i][j]) {
maxE = arr[i][j];
}
}
maxArray.push(maxE);
}
arr = maxArray;
return arr;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
<代码