Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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 返回元素位于特定位置的数组_Javascript_Arrays_Methods - Fatal编程技术网

Javascript 返回元素位于特定位置的数组

Javascript 返回元素位于特定位置的数组,javascript,arrays,methods,Javascript,Arrays,Methods,我想弄明白这件事已经有一段时间了,但我解决不了。 此函数接收名称数组,并应返回包含中间名称的数组。如果某人没有中间名,则数组在此索引处应包含null值 我知道我的代码不完整,但即使有一半代码也无法正常工作。不管我做什么,拼接方法都不起作用,现在我很迷茫 这是我目前的代码: function getMiddleNames (names) { let solution =[]; let separated = []; for(let i=0; i<names.length; i++){ s

我想弄明白这件事已经有一段时间了,但我解决不了。 此函数接收名称数组,并应返回包含中间名称的数组。如果某人没有中间名,则数组在此索引处应包含null值

我知道我的代码不完整,但即使有一半代码也无法正常工作。不管我做什么,拼接方法都不起作用,现在我很迷茫

这是我目前的代码:

function getMiddleNames (names) {
let solution =[];
let separated = [];
for(let i=0; i<names.length; i++){
  separated.push(names[i].split(' '));
} 
 return separated.splice(1);
}

谁能帮我一下吗?感谢您将整个名称放入单独的数组中,然后将其拼接。这真的不管用。您需要分隔名称并单独拆分每个名称:

函数getMiddleNames(名称){ 设解=[]; 对于(让i=0;i试试这个:

function getMiddleNames(names) {
  return names.map(x => getMiddleNameOf(x));
}
function getMiddleNameOf(name) {
  let split = name.split(' ');
  return split.length == 3 ? split[1] : null;
}

提示:检查拆分数组的长度部分有效,因为返回以下错误:AssertionError:expected[['Hannah']]深度等于['Hannah']+expected-actual[-[-“Hannah”-]+“Hannah”]@VisualXZ是的,这是因为
slice
返回一个数组。我编辑只是为了返回值。映射版本应该处理空值。还编辑了第一个以检查没有中间名。我现在看到了,谢谢你的帮助。映射版本离我现在能做的还有一点远,但我正在尝试适应它。干杯。Wher当
x
是一个字符串时,
x.getMiddleName
是否来自于?答案似乎与问题中的代码无关
function getMiddleNames(names) {
  return names.map(x => getMiddleNameOf(x));
}
function getMiddleNameOf(name) {
  let split = name.split(' ');
  return split.length == 3 ? split[1] : null;
}