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%,它是需要位于对象内部的定义值。但是,我编辑了这个片段。这是一个更好、更简洁的解决方案:这是一个更好、更简洁的解决方案: