我有以下代码.
var obj = {
name : 'Krysten',
age : 33,
hasPets : false
};
function listAllValues(obj) {
// your code here
var array = [];
for(var key in obj) {
if(obj.hasOwnProperty(key)) {
var value = obj[key];
array.push(value);
}
}
console.log(array);
}
listAllValues(obj);
Run Code Online (Sandbox Code Playgroud)
我想专注于这段代码:
for(key in obj) {
if(obj.hasOwnProperty(key)) {
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我们总是需要检查是否obj有自己的属性键?这对我来说听起来不太清楚.任何能够以非专业术语向我解释的人?对不起我在这里.
我正在创建一个函数,返回传入的数字是否为奇数没有模运算符.棘手的部分是它应该适用于负数和零.
到目前为止这是我的代码:
function testodd(num) {
return (num/2)*2==num;
}
var output = testodd(17);
console.log(output); // --> true
Run Code Online (Sandbox Code Playgroud)
我在这里犯了一些错误吗?或者有更好的方法吗?
我正在创建一个函数:
这是我的解决方案,目前在某些方面有效:
function getOddLengthWordsAtProperty(obj, key) {
var output = [];
for(var i = 0; i < obj.key.length; i++){
if (key in obj){
if (Array.isArray(obj[key])){
if(obj[key].length){
if(obj.key[i].split("").length % 2 !== 0){
output.push(obj.key[i]);
}
}
}
}else{
return [];
}
}
return output;
}
var obj = {
key: ['It', 'has', 'some', 'words']
};
var output = getOddLengthWordsAtProperty(obj, 'key');
console.log(output); // --> ['has', 'words']
Run Code Online (Sandbox Code Playgroud)
这里的问题是我的代码返回:
TypeError:无法读取未定义的属性"length"