Javascript 生成一个函数,该函数接受一个对象数组并根据条件返回一个新数组
我是一个学习javascript的noob。我的导师给了我这个家庭作业 家庭作业:写一个函数,它包含一个对象数组和一个数字maxAge。 每个对象都有两个属性:名称、年龄。 返回新的对象数组,仅包含年龄小于或等于maxAge的对象 以下是我所做的:Javascript 生成一个函数,该函数接受一个对象数组并根据条件返回一个新数组,javascript,arrays,Javascript,Arrays,我是一个学习javascript的noob。我的导师给了我这个家庭作业 家庭作业:写一个函数,它包含一个对象数组和一个数字maxAge。 每个对象都有两个属性:名称、年龄。 返回新的对象数组,仅包含年龄小于或等于maxAge的对象 以下是我所做的: const objectArray = [ firstObject = { name: "Ryan", age: 32 }, secondObject = { name: "Caroline", age: 1 }, th
const objectArray = [
firstObject = {
name: "Ryan",
age: 32
},
secondObject = {
name: "Caroline",
age: 1
},
thirdObject = {
name: "Steve",
age: 35
},
fourthObject = {
name: "Sheila",
age: 67
},
fifthObject = {
name: "Ron",
age: 67
},
sixthObject = {
name: "deadGuy",
age: 150
},
];
const maxAge = 67;
const makeAgeDiscrimArray = (objectArray) => {
const ageDiscrimArray = [];
const above67Array = [];
const length = objectArray.length;
for (let i = 0; i < objectArray.length; i++) {
if ((objectArray[i].age <= maxAge)) {
ageDiscrimArray.push(i)} else {
above67Array.push(i); // I know, it is a superfluity
}
}
return ageDiscrimArray;
};
console.log(makeAgeDiscrimArray(objectArray));
const objectArray=[
第一个对象={
姓名:“Ryan”,
年龄:32
},
第二个对象={
姓名:“卡罗琳”,
年龄:1
},
第三对象={
姓名:“史蒂夫”,
年龄:35
},
四个对象={
姓名:“希拉”,
年龄:67
},
第五个对象={
姓名:“罗恩”,
年龄:67
},
第六个对象={
名字:“死鬼”,
年龄:150
},
];
const maxAge=67;
常量makeAgeDiscrimArray=(objectArray)=>{
constageDiscrimArray=[];
常量数组=[];
常量长度=objectArray.length;
for(设i=0;i
for (let i = 0; i < objectArray.length; i++) {
if ((objectArray[i].age <= maxAge)) {
ageDiscrimArray.push(objectArray[i])} // <= objectArray[i]
else {
above67Array.push(objectArray[i]); // <= objectArray[i]
}
}
for(设i=0;i if((objectArray[i].age基本上,函数makeAgeDiscrimArray
将数组分为两个不同的数组。它使用最大年龄进行此操作
您需要确保在位置i
处添加数组对象,而不是将实际位置i
添加到数组中
您还可以查看filter
和map
,它们是JS中内置的函数,对于在数组上执行操作非常有用。您将objectArray中相关对象的索引添加到结果数组中,而不是对象本身我不确定您是否要求某人解释它是如何工作的,但我会看看能不能把它分解
在其他语言中,这将被称为lambda或匿名函数。
在这个函数中,您将传入objectArray。这在javascript中称为参数,允许您将数据获取到函数中
console.log(makeAgeDiscrimArray(objectArray));
()
您使函数中的参数与对象同名,但可以将其命名为完全不同的名称
const makeAgeDiscrimArray = (objectArray) => {
}
常量不能更改,但如果在Javascript中为它们分配了一个数组,则可以将新项推送到该数组中
如果您试图为这些变量分配一个新数组,尽管它会抛出一个错误。()
这里,您将objectArray中项目的#赋值给一个常量
const length = objectArray.length;
让我们让这部分更容易阅读
for (let i = 0; i < objectArray.length; i++) {
if (objectArray[i].age <= maxAge) {
ageDiscrimArray.push(i)
}
else {
above67Array.push(i); // I know, it is a superfluity
}
}
return ageDiscrimArray;
};
在最后一段代码中,您告诉它打印您的变量makeAgeDiscrimArray,它恰好是一个匿名函数。它遍历了我前面解释的所有内容,并返回您告诉函数返回的任何内容(您的数组).所以我想重要的是,它不是返回你的实际对象,而是返回你第一个数组中的对象号,这是一个重要的区别
无论如何,希望这有帮助!您正在将索引推送到数组中,而不是数组中的i
索引处的对象。什么是“多余的”?推送项目而不是索引ageDiscrimArray.Push(objectArray[i]);
。另一个数组也是如此。@guest271314-,cf多余。您的导师可能希望您使用。哦,数组文本的语法不正确。将对象附加到变量名(firstObject
等)在数组中有一点不寻常的事情要做-你确定这就是你想要的吗?一般来说还是const
(如果这些是新创建的变量名)。谢谢!我很欣赏你的全面分解。作为一个初学者,我得到了详尽解释的帮助。
console.log(makeAgeDiscrimArray(objectArray));