【发布时间】: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