首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我试图从外部API呈现这个示例数据(度量值),但是空元素也会呈现出来。我怎么能排除它?

我试图从外部API呈现这个示例数据(度量值),但是空元素也会呈现出来。我怎么能排除它?
EN

Stack Overflow用户
提问于 2022-09-05 10:05:11
回答 2查看 40关注 0票数 0
代码语言:javascript
复制
> import React from 'react';
import './style.css';

function App() {
  const measurements = [
    '1 cup ',
    '1 large',
    '1 large',
    '1 tbs',
    '2 tsp',
    '1 tsp ',
    '1/2 tsp',
    '1/2 tsp',
    '1/4 tsp',
    '1/4 tsp',
    '4 cups ',
    '1 cup ',
    'Pinch',
    ' ',
    ' ',
    ' ',
    ' ',
    ' ',
    ' ',
    ' ',
  ];

  const flattenArray = (str) => {
    return str?.map((char, i) => {
      return char? (i < str.length - 1 ? char + ',' : char + '.') : null;
    });
  };

  return (
    <div>
      <h1>Hello StackBlitz!</h1>
      <p>Measurement: {flattenArray(measurement)}</p>
    </div>
  );
}

export default App;

//结果为:1杯、1大、1大、1 tbs、2 tsp、1 tsp、1/2 tsp、1/2 tsp、1/4 tsp、1/4 tsp、4杯、1杯、夹持、.

//预期结果:1杯、1大、1大、1 tbs、2 tsp、1 tsp、1/2 tsp、1/2 tsp、1/4 tsp、1/4 tsp、4杯、1杯子、1 tsp。

EN

回答 2

Stack Overflow用户

发布于 2022-09-05 10:11:02

.map方法总是返回尽可能多的数组元素。如果你不需要空元素,它们必须被过滤,

代码语言:javascript
复制
measurements
   .filter(item => item.trim().length > 0)
   .join(', ')
   .concat('.')
票数 1
EN

Stack Overflow用户

发布于 2022-09-05 10:21:04

你可以试试这个:

代码语言:javascript
复制
 const flattenArray = (str) => {
    return str?.map((char, i) => {
      return char===' ' ?null: (i ===0 ? char : ","+char ) ;
    }) ;
  };

  return (
    <div>
      <h1>Hello StackBlitz!</h1>
      <p>Measurement: {flattenArray(measurements)}.</p>
    </div>
  );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73607691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档