【发布时间】:2017-06-20 20:26:21
【问题描述】:
我正在开发一个函数,该函数返回一个数组,该数组包含位于给定键处的数组的最后一个元素以外的所有元素。
-如果数组为空,它应该返回一个空数组。
- 如果给定键的属性不是数组,则返回一个空数组。
- 如果键没有属性,它应该返回一个空数组。
这是我的代码:
function getAllButLastElementOfProperty(obj, key) {
var output = [];
if ( key in obj && Array.isArray(obj[key]) && obj[key].length !== 0)
{
for(var i = 0; i < obj[key].length; i++ ){
if(obj[key].length - 1){
output.push(obj[key][i]);
}
}
return output;
}
}
var obj = {
key: [1, 2, 3]
};
var output = getAllButLastElementOfProperty(obj, 'key');
console.log(output); // --> MUST RETURN [1,2]
我的代码返回 [1,2,3]。
知道我做错了什么吗?
【问题讨论】:
-
我认为你搞砸了 -1...尝试在 for 循环而不是 if 语句中使用它...:D
-
if(obj[key].length - 1){总是返回 true(0 除外),所以错误可能就在那里
标签: javascript arrays