运行 使用 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.
我有一个数组,我想将它的变量存储在文件中,因为我在 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.