Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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,我有这个对象数组,最初只有name和unit字段。我最近添加了数组类型的unitConv字段 我曾经输出一个字符串数组,其中包含每个对象的名称和单位 const ingredients = [ {name: 'wine', unit: 'ml', unitConv: []}, {name: 'salt', unit: 'gr', unitConv: [{unitMeasure: { name: 'spoon'}}, {unitMeasure: { name: 'tea-spoon'}}]

我有这个对象数组,最初只有name和unit字段。我最近添加了数组类型的unitConv字段

我曾经输出一个字符串数组,其中包含每个对象的名称和单位

const ingredients = [
  {name: 'wine', unit: 'ml', unitConv: []},
  {name: 'salt', unit: 'gr', unitConv: [{unitMeasure: { name: 'spoon'}}, {unitMeasure: { name: 'tea-spoon'}}]},
  {name: 'onion', unit: 'piece', unitConv: []},
]

const response = ingredients.map(ing => `${ing.name} [${ing.unit}]`)
以下是回应:

["wine [ml]", "salt [gr]", "onion [piece]"]
现在我添加了unitConv,我想看看对象中是否有可用的unitConv,并将其作为选项传递,如下所示:

["wine [ml]", "salt [gr]", "onion [piece]", "salt[spoon]", "salt[tea-spoon]"]
我还想保留盐的初始值,用“gr”作为单位。所以对于salt,因为我有一个unit和两个unitConv,所以我想输出它三次,每个选项。 如果其中一个对象没有unitConv,unitConv字段将显示为空数组,如上面的示例所示。

您可以使用创建第二个数组来连接第一个数组

常量成分=[ {name:'wine',unit:'ml',unitConv:[]}, {name:'salt',unit:'gr',unitConv:[{unitMeasure:{name:'spoon'}},{unitMeasure:{name:'tea spoon'}}]}, {名称:'onion',单位:'piece',单位conv:[]}, ] const response=components.maping=>`${ing.name}[${ing.unit}]` .concatingredients.flatMap{name,unitConv}=> unitConv.mapx=>`${name}[${x.unitMeasure.name}]`; console.logresponse 可以使用创建第二个数组以连接第一个数组

常量成分=[ {name:'wine',unit:'ml',unitConv:[]}, {name:'salt',unit:'gr',unitConv:[{unitMeasure:{name:'spoon'}},{unitMeasure:{name:'tea spoon'}}]}, {名称:'onion',单位:'piece',单位conv:[]}, ] const response=components.maping=>`${ing.name}[${ing.unit}]` .concatingredients.flatMap{name,unitConv}=> unitConv.mapx=>`${name}[${x.unitMeasure.name}]`;
console.logresponse 一种简单的数组缩减方法:

常量成分= [{name:'wine',unit:'ml',unitConv:[]} ,{name:'salt',unit:'gr',unitConv: [{unitMeasure:{name:'spoon'}} ,{unitMeasure:{name:'tea spoon'} ] } ,{name:'onion',unit:'piece',unitConv:[]} ] const resp2=components.reduceresp,{name,unit,unitConv}=> { resp.push`${name}[${unit}]` unitConv.forEach{unitMeasure}=> 响应推送`${name}[${unitMeasure.name}]` 返回响应 },[] console.log resp2
.as控制台包装{max height:100%!important;top:0;}一个简单的数组缩减方法:

常量成分= [{name:'wine',unit:'ml',unitConv:[]} ,{name:'salt',unit:'gr',unitConv: [{unitMeasure:{name:'spoon'}} ,{unitMeasure:{name:'tea spoon'} ] } ,{name:'onion',unit:'piece',unitConv:[]} ] const resp2=components.reduceresp,{name,unit,unitConv}=> { resp.push`${name}[${unit}]` unitConv.forEach{unitMeasure}=> 响应推送`${name}[${unitMeasure.name}]` 返回响应 },[] console.log resp2
.as console wrapper{max height:100%!important;top:0;}您可以使用flatMap并在其回调函数中检查unitConv数组lentgh,如果为真,则可以使用映射。以下是演示:

常量成分=[{ 名称:‘葡萄酒’, 单位:毫升, unitConv:[] }, { 名称:'盐', 单位:'gr', unitConv:[{ 单位度量:{ 名字:“勺子” } }, { 单位度量:{ 名称:“茶匙” } }] }, { 名称:'洋葱', 单位:'件', unitConv:[] }, ] 函数strFormatname,单位{ 返回`${name}[${unit}]`; } const result=components.flatmapping=>{ 如果为ing.unitConv.length{ const ingAllUnits=ing.unitConv.mapunit=>strFormating.name,unit.unitMeasure.name; ingAllUnits.pushstrFormating.name,ing.unit; 返回所有单元; }否则返回strFormating.name,ing.unit; };
console.logresult 您可以使用flatMap并在其回调函数中检查unitConv数组lentgh,如果为真,则可以使用map进行检查。以下是演示:

常量成分=[{ 名称:‘葡萄酒’, 单位:毫升, unitConv:[] }, { 名称:'盐', 单位:'gr', unitConv:[{ 单位度量:{ 名字:“勺子” } }, { 单位度量:{ 名称:“茶匙” } }] }, { 名称:'洋葱', 单位:'件', unitConv:[] }, ] 函数strFormatname,单位{ 返回`${name}[${unit}]`; } const result=components.flatmapping=>{ 如果为ing.unitConv.length{ const ingAllUnits=ing.unitConv.mapunit=>strFormating.name,unit.unitMeasure.name; ingAllUnits.pushstrFormating.name,ing.unit; 返回所有单元; }否则返回strFormating.name,ing.unit; };
console.logresult;我的答案对你有用吗?是的,谢谢!我的答案对你有用吗?是的,谢谢!