返回数组值,而不是Javascript中的数组迭代器
如何返回数组的值?方法.values()和.entries()似乎返回数组迭代器。这不是我想要的。我也不允许修改此边缘情况的func1()函数返回数组值,而不是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
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()
,就没有其他方法了,因为它总是会返回一个数组。我会相应地更新我的答案。