【问题标题】:Returning first object in array of objects (JavaScript)返回对象数组中的第一个对象(JavaScript)
【发布时间】:2021-02-27 03:03:05
【问题描述】:

我在使用此功能时遇到问题。我应该返回数组的第一个元素,我可以使用数字数组或字符串来完成。

function firstElement(array) {
  if (array.length === 0) {
    return undefined;
  }
  if (array instanceof Array || typeof(array) === "string") {
    return array[0];
  }
}
firstElement([1, 2, 3]); // 1
firstElement([{ name: “Joseph” }, { name: “Ashley” }, { name: “Brandon” }]); // {name: “Joseph”}

但是,当涉及到对象数组时,我不太确定应该如何返回整个对象({name: "Joseph"})。起初,我尝试以与返回数字数组中的第一个数字相同的方式执行此操作,但我被抛出了SyntaxError。看起来就这么简单,但我现在完全陷入困境。我希望它能够适用于任何 {key: value} 对象,而不仅仅是特定名称。

谁能看出我哪里错了?

【问题讨论】:

  • 查看 OP 对类型检查所做的工作,length 检查不应在类型检查之前进行。另外看看可能的返回值,firstElement 的实现可以根据Array.from 的使用大大简化,并确保传递的参数既不是null 也不是undefined 值...@987654330 @ ... 或其他变体,例如 ... const firstElement = value => Array.from(value ?? [])[0];

标签: javascript arrays object


【解决方案1】:

根据你的对象值,应该是string,但是你用错了double quotes。应该是" " 而不是“ ”。

您也可以使用single quote,即' '。两者都可以接受。

其他一切正常。

function firstElement(array) {
  if (array.length === 0) {
    return undefined;
  }
  if (array instanceof Array || typeof array === "string") {
    return array[0];
  }
}
const element1 = firstElement([1, 2, 3]); // 1
const element2 = firstElement([{ name: "Joseph" }, { name: "Ashley" }, { name: "Brandon" }]);

console.log( element1 );
console.log( element2 );

【讨论】:

  • 哦,哇。我什至没有意识到引号是不同的。谢谢!
【解决方案2】:

您的数组中的对象不正确,它应该是一个字符串,这就是您遇到此问题的原因。 只需将对象中的“更改为”,您的代码就会按预期工作。

尝试使用以下数组一次。
[{ 姓名:“约瑟夫”},{ 姓名:“阿什利”},{ 姓名:“布兰登”}]

function firstElement(array) {
      if (array.length === 0) {
        return undefined;
      }
      if (array instanceof Array || typeof array === "string") {
        return array[0];
      }
    }
   
    const first = firstElement([{ name: "Joseph" }, { name: "Ashley" }, { name: "Brandon" }]);
    console.log("first :", first);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-30
    • 2016-06-16
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 2018-11-23
    • 1970-01-01
    相关资源
    最近更新 更多