Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 此筛选器未返回预期结果 函数get20(arr){ 让结果=arr.filter((艺术家)=>{ 让出生=数字(艺术家年数拼接(0,3)) 让死亡=数字(艺术家的年数(7,10)) return birth>=1900&&death_Javascript_Arrays_Function_Object_Filter - Fatal编程技术网

Javascript 此筛选器未返回预期结果 函数get20(arr){ 让结果=arr.filter((艺术家)=>{ 让出生=数字(艺术家年数拼接(0,3)) 让死亡=数字(艺术家的年数(7,10)) return birth>=1900&&death

Javascript 此筛选器未返回预期结果 函数get20(arr){ 让结果=arr.filter((艺术家)=>{ 让出生=数字(艺术家年数拼接(0,3)) 让死亡=数字(艺术家的年数(7,10)) return birth>=1900&&death,javascript,arrays,function,object,filter,Javascript,Arrays,Function,Object,Filter,拼接是数组而不是字符串的方法。请尝试以下操作: function get20(arr){ let result = arr.filter((theArtist) => { let birth = Number(theArtist.years.splice(0,3)) let death = Number(theArtist.years.splice(7,10)) return birth >= 1900 && death <= 2000;

拼接是数组而不是字符串的方法。请尝试以下操作:

function get20(arr){
 let result = arr.filter((theArtist) => {
   let birth = Number(theArtist.years.splice(0,3))
   let death = Number(theArtist.years.splice(7,10))
   return birth >= 1900 && death <= 2000;
  })
 return result;
}
或者,使用子字符串

years = theArtist.years.split('')
let birth = Number(years.splice(0,4))
let death = Number(years.splice(7,4))
您应该在字符串上使用(
splice
是一个类似于数组的函数)。还要注意,您的索引被关闭了1

var years=“1971-1984”;
让出生数=年数。子串(0,4))
让死亡=数字(年。子串(7,11))

console.log(出生、死亡)
使用
切片
代替
拼接

let birth = Number(theArtist.years.substring(0,4))
let death = Number(theArtist.years.substring(7,11))

因为
splice
是一个数组函数?请同时添加
arr
。您是否尝试过这两种解决方案中的任何一种。两种解决方案都因不同的原因而失败?我没有,只是使用OP的索引快速回答。我对函数进行了双重检查并编辑以确保正确。因此我用它修复了该函数,但现在它返回了两个对象。我只想让它返回return通过该条件的对象中的name值。我不知道如何执行此操作。为了澄清,arr是一个“艺术家”数组,其中包含“name”和“years”字段。您正试图将数组筛选为1900到2000年间出生和死亡的艺术家。该函数将返回符合条件的艺术家对象数组,但您只需要他们的名称(在数组中).正确吗?是的,完全正确,因此我用它修复了函数,但现在它返回两个对象。我只希望它返回通过该条件的对象内的名称值。我不知道如何执行此操作
'1971 - 1984'.slice(0,4) // '1971'
'1971 - 1984'.slice(7,11) // '1984'