Q
替換數組中的元素
1
A
回答
3
==
是比較運算符 =
被賦值運算符
更改爲這樣:
for(var i = 0; i < b.length; i++){
if(b[i] == "y") {
B [I] = 「#」;
var c = count++;
}
}
從
for(var i = 0; i < b.length; i++){
if(b[i] == "y") {
B [ 'Y'] == 「#」;
count++;
}
}
x = ['a', 'b', 'c'];
z = ['z', 'y', 'y'];
var a = x.concat(z);
var b = a.sort();
var count = 0;
for (var i = 0; i < b.length; i++) {
if (b[i] == "y") {
b[i] = "#";
count++;
}
}
console.log(b);
console.log(count);
4
- 聲明所有變量
- 分配權值,不作比較
b[i] = "#";
, - 使用
count
變量,而不是c
- 不需要使用
b
,因爲sort
對給定數組進行排序。
var x = ['a', 'b', 'c'];
var z = ['z', 'y', 'y'];
var a = x.concat(z);
var count = 0;
a.sort();
for (var i = 0; i < a.length; i++){
if (a[i] == "y") {
a[i] = "#";
count++;
}
}
console.log(a);
console.log(count);
2
您還可以使用Array#map
。
var x = ['a','b','c'];
var z = ['z','y','y'];
var a = x.concat(z);
var b = a.sort();
var count = 0;
b = b.map(function(v) {
if(v == 'y') {
count++;
return '#';
} else {
return v;
}
});
console.log(b);
console.log(count);
1
我不知道,但是這是你想要的嗎?
x = ['a','b','c'];
z = ['z','y','y'];
var a = x.concat(z);
var b = a.sort();
var count = 0;
for(var i = 0; i < b.length; i++){
if(b[i] == "y") {
\t \t b[i] = "#";
var c = count++;
}
}
console.log(b);
console.log(c+1);
4
您可以使用reduce
與解構賦值有效地返回2個值
var x = ['a','b','c']
var z = ['z','y','y']
var a = x.concat(z)
var [count, b] = a.reduce(([count,b],x)=> {
if (x === 'y')
return [count + 1, [...b, '#']]
else
return [count, [...b, x]]
}, [0, []])
console.log(count) // 2
console.log(b) // ['a', 'b', 'c', 'z', '#', '#']
如果你真的想在替換'y'
之前將數組排序並得到計數,你應該知道Array.prototype.sort
會改變原始數組。另外,將一個數組賦值給一個變量是通過引用。
所以,當你寫這個...
var b = a.sort();
你應該知道,a
進行排序,並b
只是第二參考完全相同的陣列。 b
是不是單獨的副本。
如果你想製作一個單獨的副本,你可以如果你是較少的代碼行的粉絲,那麼這一條線(或者兩個線)實施將做到這一點
// make B a sorted copy of A. do not modify A.
var b = a.slice(0).sort();
1
顯。 ;)
但我的回答的主要原因是關於排序返回值。 如documentation提到:
排序()方法代替排序數組的元素,並返回 陣列。排序不一定穩定。默認排序順序 根據字符串Unicode代碼點。
所以sort()
方法做到位和返回結果(陣列)過的動作。
var x = ['a', 'b', 'c'],
z = ['z', 'y', 'y'],
toReplace = 'y',
replaceWith = '#',
count = 0;
var result = x.concat(z).sort()
.map((v, i, a) => v === toReplace ? ++count && replaceWith : v);
console.log(result, count);
相關問題
- 1. 替換數組中的對角元素
- 2. 替換數組中的元素?
- 3. 替換對象數組中的元素
- 4. 替換數組中的單個元素
- 5. php - 用另一個數組的元素替換數組元素?
- 6. 如何替換數組的元素?
- 7. 用數組元素的RegExp替換()
- 8. 用另一個數組中的特定元素替換數組元素
- 9. r - 替換矢量中的元素組
- 10. 用numpy數組替換1d numpy數組中的元素
- 11. 用散列值替換數組元素
- 12. 替換數組元素使用Perl
- 13. 用數組元素替換字符串
- 14. 如何替換數組元素到位
- 15. 替換元素
- 16. 用不同的數字替換數組元素,在javascript中
- 17. 在Python中替換數組中的元素
- 18. 在紅寶石中替換多維數組中的元素
- 19. 交替數組元素
- 20. Javascript替換數組中的元素的字符
- 21. 如何替換MongoDB文檔中的數組的所有元素?
- 22. c#用另一個數組的偶數元素替換奇數元素
- 23. Java:替換數組中的值並移動數組中的元素
- 24. 你如何替換數組中的重複元素?
- 25. 以編程方式替換數組中的元素(字符串)
- 26. 如何正確替換數組中的值元素?
- 27. 如何替換/重置TCL數組中的元素值?
- 28. 如何用「OTHER」替換數組中的空元素?
- 29. 如何替換Java中的數組元素?
- 30. 遞歸地替換數組中的元素
'B [ 'Y'] =='應該是'B [I] ='。 – nnnnnn
'b ['y']'應該是'b [i]',當你設置'b [i]'時,你應該用'='而不是'==' – hsh
不要忘記使用'var'在聲明所有新變量之前,btw – naomik