运行 使用 javascript / node js 在 map 函数中控制台一次

run console one time inside map function using javascript / node js

我有一个数组,我想将它的变量存储在文件中,因为我在 map 函数之外声明了文件

let object = [
  {
    id: '01',
    name: 'Subject',
    'Data.type': 'maths',
  },
  {
    id: '02',
    name: null,
    'Data.type': 'science',
  },
  {
    id: '04',
    name: 'language',
    'Data.type': 'node',
  },
  {
    id: '05',
    name: null,
    'Data.type': 'node',
  },{
    id: '01',
    name: 'Subject',
    'Data.type': 'maths',
  },
  {
    id: '02',
    name: 'Subject',
    'Data.type': 'science',
  },
  {
    id: '04',
    name: null,
    'Data.type': 'node',
  },
  {
    id: '05',
    name: null,
    'Data.type': 'node',
  }
];
let names=[];
object.map((value) => {
  if(typeof value.name === "string"){
  names.push(value.name);
  console.log(names);
  }
//some code here
//code here
// use of names to perform some task
})

值是这样打印的

["subject"]

["subject",
 "language"]

["subject",
 "language",
 "subject"]

["subject",
 "language",
 "subject",
 "subject"]

有没有可能它应该只 运行 1 次在 map 函数中,像这样在里面加载了完整的值,这样我就可以在 map 函数中执行任务

files= ["subject",
 "language",
 "subject",
 "subject"]

Array.prototype.map():

array.map 的目的是创建一个新数组,其中每个元素都更改为原始元素通过提供的函数的结果。

例如,

var a = [1, 2, 3];

function times2(n) {
  return n * 2;
}

var b = a.map(times2);
console.log(b); // Will log [2, 4, 5]

Array.prototype.forEach():

还有函数array.forEach。这样做的目的是运行一个函数,数组的每个元素按顺序作为输入。

例如,

a = [1, 2, 3];

a.forEach(console.log); // Will log: "1", then "2", then "3".

您的解决方案:

您想要 运行 对数组的每个元素执行一个函数。

您的函数应将一个元素作为输入,并将其推送到另一个现有数组。

您应该等到每个元素都已添加到新数组后才进行记录。

例如,

let names = [];

function addToNames(element) {
  if (typeof element.name === "string") {
    names.push(element.name);
  }
}

object.forEach(addToNames);
console.log(names);
// Now that names array is complete, you can do whatever you need with it.

另一种选择,使用箭头函数,

let names = [];

object.forEach(element => {
  if (typeof element.name === "string") {
    names.push(element.name);
  }
});
console.log(names);
// Now that names array is complete, you can do whatever you need with it.