【问题标题】:How to display elements of this array?如何显示这个数组的元素?
【发布时间】: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 如果是letconst 会,但它是var,所以在函数结束之前它不会超出范围。
  • 啊,是的,这是var,我总是对它们的范围感到困惑,我从不使用它们

标签: javascript arrays output


【解决方案1】:

你是说这个吗?

var arr = [2, 6, 4, 4, 4, 9]
var newArr = (arr.sort())
var rem = []; // create your rem array outside
for (var i = 0; i < newArr.length; i++) {
  if (newArr[i] == newArr[i + 1]) {
    rem.push(i); // if "i" matches your criteria, add it to the array.
  }
}
console.log(rem); // rem has the full list of indices

【讨论】:

    【解决方案2】:

    也许是这样的?

    var arr = [2, 6, 4, 4, 4, 9]
    var newArr = (arr.sort())
    vare rem = []
    
    for (var i = 0; i < newArr.length; i++)
      if (newArr[i] == newArr[i + 1]) {
        rem.push(newArr[i]);
    
      }
    console.log(rem[0])
    

    【讨论】:

      猜你喜欢
      • 2016-01-06
      • 2013-03-26
      • 2019-06-12
      • 2022-07-21
      • 1970-01-01
      • 2014-12-16
      • 2012-08-04
      • 2012-04-27
      • 2020-04-07
      相关资源
      最近更新 更多