微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决返回数组值,而不是 Javascript 中的数组迭代器

如何返回数组的值?方法 .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() 总是返回一个包含一个元素的数组,它永远不会返回 [1,2],无论 func2 做什么。您必须修改其代码。

,

作为 Bergi statedfunc1() 将始终返回一个数组,无论 func2() 返回什么。但是根据 func1() 的返回值,有几种方法可以实现这一点。

您可以简单地使用数组 test[0] 中的第一个元素,也可以使用 Array.flat() methodspread operator。请参阅下面的片段。

const test = func1();

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
}

// First element in array
console.log(test[0]);

// Array.flat()
console.log(test.flat());

// Spread operator
console.log(...test);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。