【发布时间】:2020-11-20 11:26:12
【问题描述】:
var arr = [2, 6, 4, 4, 4, 9]
var newArr = (arr.sort())
for (var i = 0; i < newArr.length; i++)
if (newArr[i] == newArr[i + 1]) {
var rem = [console.log(i)] //- (a)
}
console.log(rem[0])
我想要i 的所有值,这些值在newArr 数组中重复。语句 (a) 给了我索引,我想将它们存储在一个名为 rem 的数组中。但是 console.log(rem[0]) 是未定义的。我能做什么?
【问题讨论】:
-
var rem = [console.log(i)] //- (a)将覆盖rem循环的每次迭代。此外,console.log(i)将始终返回undefined- 它记录您给它的内容,但调用生成的值是undefined,所以[console.log(i)]总是[undefined]- 一个包含一个元素的数组,该元素是undefined。 -
var rem = [console.log(i)]是什么?可能应该是rem = [i]。请注意,rem变量必须在循环外声明。 -
@VLAZ 那么我该如何存储重复值呢?
-
@Cid 如果是
let或const会,但它是var,所以在函数结束之前它不会超出范围。 -
啊,是的,这是
var,我总是对它们的范围感到困惑,我从不使用它们
标签: javascript arrays output