Javascript 根据数字的值,将字符串从数组中的一个数组(带有字符串和数字)推送到新数组

Javascript 根据数字的值,将字符串从数组中的一个数组(带有字符串和数字)推送到新数组,javascript,arrays,Javascript,Arrays,我想自己做尽可能多的事。首先,如何从数组中的数组调用一个元素。那么如何将数组中的一个元素推送到新数组中呢。最终,我希望基于年龄组创建新阵列。0-20, 21-30, 31-40, 41-50, 51-60. 打印带有名称和年龄的新阵列 const arr1 = ['Sarah',37]; const arr2 = ['Mike', 32]; const arr3 = ['Bill', 25]; const arr4 = ['Chris', 24]; const arr5 = ['Joe', 4

我想自己做尽可能多的事。首先,如何从数组中的数组调用一个元素。那么如何将数组中的一个元素推送到新数组中呢。最终,我希望基于年龄组创建新阵列。0-20, 21-30, 31-40, 41-50, 51-60. 打印带有名称和年龄的新阵列

const arr1 = ['Sarah',37];
const arr2 = ['Mike', 32];
const arr3 = ['Bill', 25];
const arr4 = ['Chris', 24];
const arr5 = ['Joe', 44];
const arr6 = ['Jesse', 33];
const arr7 = ['Jon', 28];
const arr8 = ['Michael', 55];
const arr9 = ['Jill', 59];
const arr10 = ['Helia', 4];

const mainArr = [arr1, arr2, arr3, arr4, arr5, arr6, arr7, arr8, arr9, arr10];

const newArr = [];
const age3040 = []

newArr.push(mainArr[[0][0]]);

const checkAge = (ageCheck) => {
    if (arr1[1] > 30 || arr1[1] < 41) {
   age3040.push(arr1[0]);
}
}

console.log(arr1);
console.log(newArr);
console.log(age3040);
const arr1=['Sarah',37];
常数arr2=['Mike',32];
const arr3=['Bill',25];
常数arr4=[Chris',24];
常量arr5=['Joe',44];
常量arr6=['Jesse',33];
常量arr7=['Jon',28];
常量arr8=['Michael',55];
常量arr9=['Jill',59];
常数arr10=['Helia',4];
常量mainArr=[arr1,arr2,arr3,arr4,arr5,arr6,arr7,arr8,arr9,arr10];
常数newArr=[];
常数age3040=[]
新到达推送(主到达[[0][0]]);
常量检查年龄=(年龄检查)=>{
如果(arr1[1]>30 | | arr1[1]<41){
年龄3040.push(arr1[0]);
}
}
控制台日志(arr1);
控制台日志(newArr);
控制台日志(age3040);

如果
使用
如果
则使用
,如果
则使用
&&
而不是
|

像这样:

let age020 = []
let age2030 = []
let age3040 = []
let age4050 = []
let age5060 = []

mainArr.forEach(arr =>{
  const age = arr[1]
if(age >= 0 && age <= 20){
    age020.push(arr)
}else if(age >= 30 && age <= 40){
    age3040.push(arr)
}
//... do same to other age range 
})

console.log(age020)
console.log(age3040)
let age020=[]
让年龄2030=[]
让年龄3040=[]
设年龄4050=[]
设年龄5060=[]
mainArr.forEach(arr=>{
const age=arr[1]

如果(age>=0&&age=30&&age代码中有三个问题

  • 根本不使用
    ageCheck
  • |
    应该是
    &&
  • 未调用函数
    checkAge
    ,因此无法获得结果
  • 这里有一个例子,希望对你有所帮助

    const arr1 = ['Sarah', 37];
    const arr2 = ['Mike', 32];
    const arr3 = ['Bill', 25];
    const arr4 = ['Chris', 24];
    const arr5 = ['Joe', 44];
    const arr6 = ['Jesse', 33];
    const arr7 = ['Jon', 28];
    const arr8 = ['Michael', 55];
    const arr9 = ['Jill', 59];
    const arr10 = ['Helia', 4];
    
    const mainArr = [arr1, arr2, arr3, arr4, arr5, arr6, arr7, arr8, arr9, arr10];
    
    const reuslt = [{
        range: '0-20',
        names: []
    }, {
        range: '21-30',
        names: []
    }, {
        range: '31-40',
        names: []
    }, {
        range: '41-50',
        names: []
    }, {
        range: '51-60',
        names: []
    }];
    
    for (let index = 0; index < mainArr.length; index++) {
        const item = mainArr[index];
    
        if (item[1] > 0 && item[1] <= 20) {
            reuslt[0].names.push(item[0]);
        } else if (item[1] <= 30) {
            reuslt[1].names.push(item[0]);
        } else if (item[1] <= 40) {
            reuslt[2].names.push(item[0]);
        } else if (item[1] <= 50) {
            reuslt[3].names.push(item[0]);
        } else if (item[1] <= 60) {
            reuslt[4].names.push(item[0]);
        }
    }
    
    console.log(reuslt);
    
    const arr1=['Sarah',37];
    常数arr2=['Mike',32];
    const arr3=['Bill',25];
    常数arr4=[Chris',24];
    常量arr5=['Joe',44];
    常量arr6=['Jesse',33];
    常量arr7=['Jon',28];
    常量arr8=['Michael',55];
    常量arr9=['Jill',59];
    常数arr10=['Helia',4];
    常量mainArr=[arr1,arr2,arr3,arr4,arr5,arr6,arr7,arr8,arr9,arr10];
    常数=[{
    范围:“0-20”,
    姓名:[]
    }, {
    范围:“21-30”,
    姓名:[]
    }, {
    范围:“31-40”,
    姓名:[]
    }, {
    范围:“41-50”,
    姓名:[]
    }, {
    范围:“51-60”,
    姓名:[]
    }];
    对于(让索引=0;索引如果(item[1]>0&&item[1]您在这里面临的主要问题是,当您在列表上迭代时,无法创建新的人员组,并且被迫硬编码新变量,如
    constage3040=[]
    。通常,您会使用一个对象来实现这一点,这样您就可以得到这样的对象

    const排名={
    “20”:[“Helia”],
    “30”:[“比尔”、“乔恩”],
    //等等
    } 
    
    在这种情况下,唯一要做的就是在你计算出你需要什么后,找出人们进入哪一类

    const-ranked={}
    for(缅因州常量[姓名、年龄]){
    //一个函数,用于决定给该年龄段的人提供什么密钥
    常数层=决策层(年龄)
    const people=排名[层]
    如果(!人){
    //如果以前没有见过这个年龄的人,你会
    //必须创建一个包含人物的新数组,以便
    //下一次推送新名字
    排名[层]=[名称]
    }否则{
    人物。推送(姓名)
    }
    }
    console.log(排名[“20”])
    

    你在这里寻找的东西的一个例子叫做
    groupBy
    btw,可以在像这样的库中找到。

    我尝试了你的代码,结果是:数组(5)[对象,对象,对象,对象]。这只是创建了一个数组“名称”,根据年龄对名称进行排序?谢谢,这很奇怪,我得到了正确的结果。如何运行代码?您可以尝试在chrome DevTools控制台上运行代码吗?或者您可以在最后一行设置断点以查看结果。我认为您正在运行的环境不支持console。使用det记录数组ails.const reuslt和以下代码创建了一个详细的数组,其中包含基于年龄的分组?是的,结果[0]。范围显示为“0-20”,结果[0]。例如,名称是一个名为“Helia”的数组。