我有一个像这样的数组
var array=[[1,'a'],[1,'b'],[2,'c'],[2,'b'],[2,'d'],[3,'a'],[3,'s'],[3,'w'],[3,'q'],[4,'w']]
和我想要的输出:
1 a
b
2 c
b
d
3 a
等等。所以我想用''
替换所有的数字。
试过这个,但它只比较了两个元素。
for( var i=0; i<array.length-1; i++ ) {
if ( array[i][0] == array[i+1][0] ) {
array[i+1][0]='';
}
}
答案 0 :(得分:1)
你需要添加外部循环:
for(var j=0; j < array.length; j++){
for( var i=0; i<array.length; i++ ) {
if ( array[i][0] == array[j][0] && i != j) {
array[i][0]='';
}
}
}
答案 1 :(得分:1)
按照问题中显示的格式打印代码打印数据,但不修改数据。
//print first data
println( string(array[0][0]) + ' ' + array[0][1] )
var prevNumber = array[0][0] // record the number of data printed last.
for( var i=1; i<array.length-1; i++ ) {
if ( array[i][0] == prevNumber ) { // if same number, print ' ' instead of number.
println( ' ' + ' ' + array[i][1] )
} else { // number is changed
println( array[i][0] + ' ' + array[i][1] )
prevNumber = array[i][0] // record the number of data printed last.
}
}
很容易将数据中的一部分数据降级,但很难或不可能恢复之后删除的数据。这就是为什么我不修改数组的数据,而是修改要打印的代码。