Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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 - Fatal编程技术网

Javascript 合并两个数组返回错误的结果?

Javascript 合并两个数组返回错误的结果?,javascript,arrays,Javascript,Arrays,我试图以一种特定的格式组合两个数组,但我无法想象我做错了什么 这是我想要的输出结果: [ data: [ {value: 100, name: 'January'}, {value: 30, name: 'February'}, {value: 150, name: 'March'}, {value: 85, name: 'April'}, {value: 60, name: 'May'}, {value: 20, name: 'June'} ], radius:

我试图以一种特定的格式组合两个数组,但我无法想象我做错了什么

这是我想要的输出结果:

[ data: [
  {value: 100, name: 'January'},
  {value: 30, name: 'February'},
  {value: 150, name: 'March'},
  {value: 85, name: 'April'},
  {value: 60, name: 'May'},
  {value: 20, name: 'June'}
  ],
  radius: '50%' ]
这是我的代码:

var销售额=[100,30,150,85,60,20]; 风险值月份=[一月、二月、三月、四月、五月、六月]; var-rad=50%; var组合=sales.mapfunction组合数据项,索引{ 返回{ 数据:[{value:dataItem,name:months[index]}], 半径:rad }; }.filterfunction removeEmptyitem{ 返回项.data.length; }; console.logcombined 只需映射到它,并在对象中添加值和名称

var销售额=[100,30,150,85,60,20]; 风险值月份=[一月、二月、三月、四月、五月、六月]; const data=sales.mapsale,i=>{ 价值:出售, 名称:月[i], }; 常数结果={ 数据 半径:50%, }; console.logresult 只需映射到它,并在对象中添加值和名称

var销售额=[100,30,150,85,60,20]; 风险值月份=[一月、二月、三月、四月、五月、六月]; const data=sales.mapsale,i=>{ 价值:出售, 名称:月[i], }; 常数结果={ 数据 半径:50%, };
console.logresult 因此,在预期的输出中,将数组视为对象。为获得预期结果,请尝试以下操作:

{data: [
  {value: 100, name: 'January'},
  {value: 30, name: 'February'},
  {value: 150, name: 'March'},
  {value: 85, name: 'April'},
  {value: 60, name: 'May'},
  {value: 20, name: 'June'}
],
radius: '50%'}
至于如何达到效果,请尝试以下方法:

const sales = ["100", "30", "150", "85", "60", "20"],
months = ["January", "February", "March", "April", "May", "June"];

const combine = (s, m) => {
  const arr = [];
  for (let i = 0; i < Math.min(s.length, m.length); i++)
    arr.push({ value: s[i], name: m[i] });
  return arr;
};

const dataObj = {
  data: combine(sales, months),
  radius: "50%",
};


console.log(dataObj);

因此,在预期的输出中,将数组视为对象。为获得预期结果,请尝试以下操作:

{data: [
  {value: 100, name: 'January'},
  {value: 30, name: 'February'},
  {value: 150, name: 'March'},
  {value: 85, name: 'April'},
  {value: 60, name: 'May'},
  {value: 20, name: 'June'}
],
radius: '50%'}
至于如何达到效果,请尝试以下方法:

const sales = ["100", "30", "150", "85", "60", "20"],
months = ["January", "February", "March", "April", "May", "June"];

const combine = (s, m) => {
  const arr = [];
  for (let i = 0; i < Math.min(s.length, m.length); i++)
    arr.push({ value: s[i], name: m[i] });
  return arr;
};

const dataObj = {
  data: combine(sales, months),
  radius: "50%",
};


console.log(dataObj);

这是我想要的输出结果-这是可能的,但是当你想要一个对象时,你不应该误用数组。这是调试器的一个很好的例子。radius来自哪里?@outis感谢你的回答,是的,我有JSFIDLE我在过去的一个小时里一直试图修复它,什么都没有@SAM hello,radius总是50%,它是需要位于对象内部的定义值。但是,我编辑了这个片段。Thx这是我想要的输出结果-这是可能的,但是当你想要一个对象时,你不应该滥用数组。这是调试器的一个很好的例子。radius来自哪里?@outis感谢你的回答,是的,我有JSFIDLE我在过去一个小时一直试图修复它,什么都没有@SAM hello,半径将始终为50%,它是需要位于对象内部的定义值。但是,我编辑了这个片段。这是一个更好、更简洁的解决方案:这是一个更好、更简洁的解决方案: