将过滤后的值推送到第二个数组

问题描述 投票:0回答:1

我正在申请编码训练营,但遇到了困难。我需要一些帮助来看看我做错了什么。我将发布问题、代码和输出。非常感谢任何帮助。

问题: 吉姆计划购买新包的各种灯泡。

他听说灯泡有序列号时效率最高

是奇数 恰好有六位数字 他会很感激你编写一些代码来找出哪些序列号符合标准。

当这个函数运行时,它将收到一个序列号数组 - 类似于

[32438, 34193, 149143, 4329429, 98537, 238791, 23492, 298342] 您需要添加代码以确保 Jim 收集他想要保留在提供的变量 effectiveSerialNumbers 中的序列号。

对于上面的数组,这意味着 effectiveSerialNumbers 最终应该包含

[149143, 238791] 我们添加了序列号日志,以便当我们尝试您的函数时,您可以在控制台中查看数组中的数字。欢迎您删除它、更改它、做任何您认为有用的事情!

function findEfficientBulbs(serialNumbers) {
console.log(serialNumbers)
const efficientSerialNumbers = [];
// Write your code here

for (let i= 0 ; i < serialNumbers.length ; i++)
if (serialNumbers[i].length <=5 || serialNumbers[i].length >=7) {
serialNumbers[i].shift()
} else if (serialNumbers[i] % 2 === 1 && serialNumbers[i].length === 6 ) {
    serialNumbers[i].shift()
    efficientSerialNumbers.unshift(serialNumbers[i])
}
    console.log(efficientSerialNumbers)
    console.log(serialNumbers)
return efficientSerialNumbers;

}

输出 4 传球 1 失败

应该返回一个数组

✓  Well done!

日志

[123123]

[]

[123123]

应丢弃五位或更少数字的序列号

✓  Well done!

日志

[ 1, 123, 12345 ]

[]

[ 1, 123, 12345 ]

应丢弃七位数或更多数字的序列号

✓  Well done!

日志

[ 1234567, 123456789 ]

[]

[ 1234567, 123456789 ]

应该丢弃偶数

✓  Well done!

日志

[ 1234, 123456, 12345678 ]

[]

[ 1234, 123456, 12345678 ]

应保留所有有效数字 - 那些奇数且有六位数字的数字

✕断言错误:预期 [] 深度等于 [234567, 456789]

日志

[ 123456, 234567, 345678, 456789 ]

[]

[ 123456, 234567, 345678, 456789 ]

javascript arrays filtering shift
1个回答
1
投票

您不需要将过滤后的值推送到第二个数组。数组已经有

Array::filter()
方法来为你完成这项工作。

数字没有

length
属性,您可以按数字范围和余数进行过滤。

function findEfficientBulbs(serialNumbers) {
  return serialNumbers.filter(num => num <= 999999 && num >= 100000 && num % 2 === 1);
}

console.log(findEfficientBulbs([32438, 34193, 149143, 4329429, 98537, 238791, 23492, 298342]))

如果序列是字符串:

function findEfficientBulbs(serialNumbers) {
  return serialNumbers.filter(num => num.length === 6 && num.at(-1) % 2 === 1);
}

console.log(findEfficientBulbs([32438, 34193, 149143, 4329429, 98537, 238791, 23492, 298342].map(n => n.toString())))

© www.soinside.com 2019 - 2024. All rights reserved.