返回数组值,而不是Javascript中的数组迭代器

返回数组值,而不是Javascript中的数组迭代器,javascript,arrays,Javascript,Arrays,如何返回数组的值?方法.values()和.entries()似乎返回数组迭代器。这不是我想要的。我也不允许修改此边缘情况的func1()函数 const test = func1(); console.log(test); // actual: [[1,2]] what I want: [1,2] function func1() { // not allowed to modify func1 return [func2()]; } function func2() { con

如何返回数组的值?方法.values()和.entries()似乎返回数组迭代器。这不是我想要的。我也不允许修改此边缘情况的func1()函数

const test = func1();

console.log(test); // actual: [[1,2]] what I want: [1,2]

function func1() { // not allowed to modify func1
  return [func2()];
}

function func2() {
  const set = new Set();
  set.add(1);
  set.add(2);
  return Array.from(set); 
  // return Array.from(set).values() returns Array Iterator
}

谢谢

这是不可能的
func1()
始终返回包含一个元素的数组,无论
func2
做什么,它都不能返回
[1,2]
。您必须修改其代码。

这是不可能的
func1()
始终返回包含一个元素的数组,无论
func2
做什么,它都不能返回
[1,2]
。必须修改其代码。

因为,
func1()
将始终返回数组,无论
func2()返回什么。但是基于
func1()
的返回值,有几种方法可以实现这一点

您可以简单地使用数组中的第一个元素
测试[0]
,也可以使用。请参阅下面的代码片段

const test=func1();
函数func1(){//不允许修改func1
返回[func2()];
}
函数func2(){
常量集=新集();
增加(1);
增加(2);
返回数组.from(set);
//return Array.from(set).values()返回数组迭代器
}
//数组中的第一个元素
console.log(test[0]);
//数组。flat()
console.log(test.flat());
//扩展运算符
console.log(…测试)
作为,
func1()
将始终返回一个数组,无论
func2()
返回什么。但是基于
func1()
的返回值,有几种方法可以实现这一点

您可以简单地使用数组中的第一个元素
测试[0]
,也可以使用。请参阅下面的代码片段

const test=func1();
函数func1(){//不允许修改func1
返回[func2()];
}
函数func2(){
常量集=新集();
增加(1);
增加(2);
返回数组.from(set);
//return Array.from(set).values()返回数组迭代器
}
//数组中的第一个元素
console.log(test[0]);
//数组。flat()
console.log(test.flat());
//扩展运算符

console.log(…测试)使用const test=func1()[0]有什么问题?可以使用
func1().flat()将结果展平。在我的用例中,func2的返回值并不总是数组。因此,我想看看是否可以只返回值。但是
func1
总是返回一个数组,因此
func2
返回什么并不重要。使用const test=func1()[0]有什么问题吗?可以使用
func1().flat()将结果展平。在我的用例中,func2的返回值并不总是数组。因此,我想看看是否可以只返回值。但是
func1
总是返回一个数组,所以
func2
返回什么并不重要。当OP写“我也不允许修改func1()函数”时,我怀疑他们是否想修改
控制台.log
调用。这个回答让我意识到了所有选项。谢谢。@Bergi,你说得对,这可能不太理想,但正如你所说的,如果OP不能修改
func1()
,就没有其他方法了,因为它总是会返回一个数组。我会相应地更新我的答案。当OP写下“我也不允许修改func1()函数”时,我怀疑他们是否想修改
控制台.log
调用。这个回答让我意识到了所有选项。谢谢。@Bergi,你说得对,这可能不太理想,但正如你所说的,如果OP不能修改
func1()
,就没有其他方法了,因为它总是会返回一个数组。我会相应地更新我的答案。