Javascript 从其他数组中的数组中计算特定单词
我试图计算数组B的特定单词出现在数组A中的次数 我尝试了下面的代码,但输出为0。我不明白,为什么它会记录我在函数开始时分配给变量的值,而不运行“for”循环Javascript 从其他数组中的数组中计算特定单词,javascript,arrays,function,Javascript,Arrays,Function,我试图计算数组B的特定单词出现在数组A中的次数 我尝试了下面的代码,但输出为0。我不明白,为什么它会记录我在函数开始时分配给变量的值,而不运行“for”循环 let A = ['really', 'basically', 'After', 'a','quick', 'popular', 'really', 'Red', 'began', 'very']; let B = ['really', 'very']; let number = () => { let count = 0;
let A = ['really', 'basically', 'After', 'a','quick', 'popular', 'really', 'Red', 'began', 'very'];
let B = ['really', 'very'];
let number = () => {
let count = 0;
for (let i=0; i < A.lengths; i++) {
if (B.includes(A[i])) {
return count++;
}
}
return console.log(count);
}
number();
让A=[“真的”、“基本上”、“之后”、“A”、“快速”、“流行”、“真的”、“红色”、“开始”、“非常”];
设B=[‘真的’、‘很’];
让数字=()=>{
让计数=0;
for(设i=0;i
我希望结果应该是3。您需要
作为数组大小的属性length
- 继续循环,不要过早返回
- 可能返回计数,通过返回
的结果,您将得到console.log
未定义的
- 将两个数组作为函数的参数
- 采用
声明/初始化,因为此变量是常量const
- 是使用小的起始字母作为变量
const number=(a,b)=>{
让计数=0;
for(设i=0;i 控制台日志(编号(array1,array2))代码>您可以添加另一个for语句来迭代B中的元素,然后检查A at[i]是否等于B at[j]。但可能没有其他答案那么有效
let A = ['really', 'basically', 'After', 'a', 'quick', 'popular', 'really', 'Red', 'began', 'very'];
let B = ['really', 'very'];
let number = () => {
let count = 0;
for (let i = 0; i < A.length; i++) {
for(let j=0; j < B.length; j++){
if (A[i] == B[j]){
count++
}
}
}
return console.log(count);
}
number();
让A=['really'、'basicy'、'After'、'A'、'quick'、'popular'、'really'、'Red'、'begined'、'very'];
设B=[‘真的’、‘很’];
让数字=()=>{
让计数=0;
for(设i=0;i
为什么这样做:返回计数++代码>
return
用于以给定值中断函数。当你写返回count++代码>,它返回计数,然后再递增(实际上它不会递增任何值,因为此时您已经超出了函数范围)
return console.log(count)
也不做任何事情-除了代码永远不会到达那里,除非在B处没有找到任何单词,这将从console.log
返回未定义的返回值
这样做:
let number = () => {
let count = 0;
for (let i=0; i < A.length; i++) {
if (B.includes(A[i])) {
count++;
}
}
console.log(count);
return count;
}
let number=()=>{
让计数=0;
for(设i=0;i
一个衬垫=>A.过滤器(项目=>B.包括(项目))。长度代码>1-长度->非长度
2-includes仅检查该数组中是否存在该值,以便返回true或false
3-return语句终止函数的执行
据我所知,你们正在计算A中B元素的出现次数
这是一种方法:
让A=[“真的”、“基本上”、“之后”、“A”、“快速”、“流行”、“真的”、“红色”、“开始”、“非常”];
设B=[‘真的’、‘很’];
让数字=()=>{
让计数=0;
for(设i=0;i 数字()代码>您还可以使用更高阶的函数,如and,而不是loop
让A=[“真的”、“基本上”、“之后”、“A”、“快速”、“流行”、“真的”、“红色”、“开始”、“非常”];
设B=[‘真的’、‘很’];
让总计=B.减少(功能(累加器、电流值){
设founds=A.filter(函数(值、索引){
返回值==当前值;
}).长度;
返回累加器+founds;
},0);
控制台日志(总计)
您既不想返回count++代码>或返回控制台.log(计数)代码>。你想count++
,返回计数
和控制台.log(number())
。在循环中,您真的有A.length
?如果是这样,请删除“s”,使其成为:A.length
作为旁注,将B
作为哈希表/对象将大大提高性能,以获得更大的输入。1。他不需要另一个循环,他使用数组。includes
方法。2.您像他那样返回console.log,使整个函数变得无用……我假设smokedsalmon返回console.log是为了能够查看返回的内容。这就是我保留console.log的原因。此外,我还包括了另一个循环来展示另一种方法。谢谢你投下的票。在其他情况下,我会理解,但是看到他是如何在中间发挥作用的,我不知道他到底是什么意思。这确实会打印计数,但返回值将丢失。您可以预先放置console.log并返回计数,但仍然可以在控制台中看到它。@AritraGhosh,也许吧,但是您的解决方案创建了一个新数组,这对于计数来说是多余的。以及过滤器
循环。您还可以查看for
和filter
的性能。当然可以。。看一看。。对于一小部分数据来说,短期收益永远不会更好