问题描述
我在使用此功能时遇到问题。我应该返回数组的第一个元素,我可以用数字数组或字符串来做。
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}
对象,而不仅仅是特定名称。
谁能看出我错在哪里?
解决方法
根据你的对象值,应该是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 );
数组中的对象不正确,它应该是一个字符串,这就是您遇到此问题的原因。 只需在对象中将“更改为”,您的代码就会按预期工作。
尝试使用以下数组一次。
[{姓名:“约瑟夫”},{姓名:“阿什利”},{姓名:“布兰登”}]
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: "Brandon" }]);
console.log("first :",first);