Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 生成一个函数,该函数接受一个对象数组并根据条件返回一个新数组_Javascript_Arrays - Fatal编程技术网

Javascript 生成一个函数,该函数接受一个对象数组并根据条件返回一个新数组

Javascript 生成一个函数,该函数接受一个对象数组并根据条件返回一个新数组,javascript,arrays,Javascript,Arrays,我是一个学习javascript的noob。我的导师给了我这个家庭作业 家庭作业:写一个函数,它包含一个对象数组和一个数字maxAge。 每个对象都有两个属性:名称、年龄。 返回新的对象数组,仅包含年龄小于或等于maxAge的对象 以下是我所做的: const objectArray = [ firstObject = { name: "Ryan", age: 32 }, secondObject = { name: "Caroline", age: 1 }, th

我是一个学习javascript的noob。我的导师给了我这个家庭作业

家庭作业:写一个函数,它包含一个对象数组和一个数字maxAge。 每个对象都有两个属性:名称、年龄。 返回新的对象数组,仅包含年龄小于或等于maxAge的对象

以下是我所做的:

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;iif((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));