简体   繁体   English

array.map 不是 function 即使我输入正确

[英]array.map is not a function even though I have it typed correctly

I am wondering why I'm getting this error message?我想知道为什么我会收到此错误消息? But array.map is correct in how I'm stating it?但是 array.map 在我的陈述中是正确的吗?

/home/ccuser/workspace/credit-card-checker/main.js:40 newArr = array.map((element, index) => index % 2 === 1? element * 2: element); /home/ccuser/workspace/credit-card-checker/main.js:40 newArr = array.map((element, index) => index % 2 === 1? element * 2: element); ^ ^

TypeError: array.map is not a function at validateCred类型错误:array.map 在 validateCred 中不是 function

 const valid1 = [4, 5, 3, 9, 6, 7, 7, 9, 0, 8, 0, 1, 6, 8, 0, 8]; const validateCred = (array) => { let newArr = []; let newestArr = []; let reducedResult = 0; const reducer = (previousValue, currentValue) => previousValue + currentValue; if (array.length % 2 === 0) { newArr = array.map((element, index) => index % 2 === 0? element * 2: element); } else { newArr = array.map((element, index) => index % 2 === 1? element * 2: element); } newestArr = newArr.map((element) => element > 9? element - 9: element); let sum = newestArr.reduce((prev, curr) => prev += curr); return sum % 10 === 0 }; const findInvalidCards = (nestedArray) => { let invalidArray = []; invalidArray = nestedArray.forEach((element) => validateCred(element) === false); return invalidArray; }; findInvalidCards(valid1);

valid1 is supposed to be an array of arrays, so here I just wrap another set of square brackets. valid1 应该是一个 arrays 的数组,所以这里我只是把另一组方括号括起来。

Also, forEach always returns undefined, so I changed it to use map instead.此外,forEach 总是返回 undefined,所以我将其改为使用 map。

 const valid1 = [[4, 5, 3, 9, 6, 7, 7, 9, 0, 8, 0, 1, 6, 8, 0, 8]]; const validateCred = (array) => { let newArr = []; let newestArr = []; let reducedResult = 0; const reducer = (previousValue, currentValue) => previousValue + currentValue; if (array.length % 2 === 0) { newArr = array.map((element, index) => index % 2 === 0? element * 2: element); } else { newArr = array.map((element, index) => index % 2 === 1? element * 2: element); } newestArr = newArr.map((element) => element > 9? element - 9: element); let sum = newestArr.reduce((prev, curr) => prev += curr); return sum % 10 === 0 }; const findInvalidCards = (nestedArray) => { let invalidArray = []; invalidArray = nestedArray.map((element) => ({cardNumber: element.join(""), isValid: validateCred(element)})); return invalidArray; }; console.log(findInvalidCards(valid1));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM