Jam*_*gon -2 javascript arrays
我正在创建一个函数:
这是我的解决方案,目前在某些方面有效:
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"
所有你需要使用的是过滤器 ......
使用% 2,如果它很奇怪,它将1是真实的并将返回正确的数组.
function getOddLengthWordsAtProperty(obj, key) {
if ( key in obj && Array.isArray(obj[key]) )
{
return obj[key].filter( (item) => item.length % 2 );
}
return []; // don't need else as return would end the function if it went into 'if'
}
var obj = {
key: ['It', 'has', 'some', 'words']
};
var output = getOddLengthWordsAtProperty(obj, 'key');
console.log(output); // --> ['has', 'words']Run Code Online (Sandbox Code Playgroud)