当我循环对象 属性 时,我只得到第一个 属性?我该如何解决?

when I loop the object property I just get first property? how can I solve it?

我从 multer 那里得到了一个对象,它的名字是文件,它有两个属性:艺术作品和灵感。我想得到每个 属性 的原始名称,但是当我 运行 代码时,我只得到艺术品的原始名称? 我该如何解决这个问题?

{
  artworks:
   [ { fieldname: 'artworks',
       originalname: 'Icon_OutdoorLeisure.png',
       encoding: '7bit',
       mimetype: 'image/png',
       buffer:
        <Buffer 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 00 64 00 00 00 64 08 06 00 00 00 70 e2 95 54 00 00 00 09 70 48 59 73 00 00 0b 13 00 00 0b 13 01 ... >,
       size: 1598 } ],
  inspiration:
   [ { fieldname: 'inspiration',
       originalname: 'Icon_HealthWellness_Hovered.png',
       encoding: '7bit',
       mimetype: 'image/png',
       buffer:
        <Buffer 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 00 64 00 00 00 64 08 06 00 00 00 70 e2 95 54 00 00 00 09 70 48 59 73 00 00 0b 13 00 00 0b 13 01 ... >,
       size: 1986 } ] }

export const Orderfilsename = function (files) {

  let result = JSON.parse(JSON.stringify(files));

  for (var key in result) {
    if (result.hasOwnProperty(key)) {
      let result_2 = result[key].map((res) => {
        const name = res.originalname.split('.')[0];
        const fileExtName = extname(res.originalname);
        const randomName = Array(4)
          .fill(null)
          .map(() => Math.round(Math.random() * 10).toString(10))
          .join('');
        return `${name}${randomName}${fileExtName}`;
      });
      return JSON.stringify(result_2);
    }
  }
};

你在 for 循环中有一个 return

 for (var key in result) {
    if (result.hasOwnProperty(key)) {
      let result_2 = ...;
      return JSON.stringify(result_2);
    }
 }

所以函数 Orderfilsenameresult 中的第一个 key 处退出。

这是你需要的吗?

const data = {
  artworks:
  [{
      fieldname: 'artworks',
      originalname: 'Icon_OutdoorLeisure.png',
      encoding: '7bit',
      mimetype: 'image/png',
      size: 1598
    }
  ],
  inspiration:
  [{
      fieldname: 'inspiration',
      originalname: 'Icon_HealthWellness_Hovered.png',
      encoding: '7bit',
      mimetype: 'image/png',
      size: 1986
    }
  ]
};

const Orderfilsename = result => {

  const extractName = x => x.originalname.split('.')[0];
  const randomName = () => Array.from({ length: 4 }, () => Math.round(Math.random() * 10).toString(10)).join('');
  const extractFileExtName = x => x.originalname.split('.')[1];
  const dot = () => '.';

  return Object.values(result)
    .flatMap(x => x)
    .map(x => [extractName, randomName, dot, extractFileExtName].map(fun => fun(x)).join(''))

};

console.log(Orderfilsename(data));

      const Orderfilsename = function (files) {
        let names = []

        for(let key in files) {
          let groupNames = files[key].map(el => {
            return el.originalname
          })
          names = [...names, ...groupNames]
        }
        return names
      };

      console.log(Orderfilsename(data))