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. php - 用另一个数组的元素替换数组元素?
- 5. 如何替换数组的元素?
- 6. 用另一个数组中的特定元素替换数组元素
- 7. r - 替换矢量中的元素组
- 8. 用numpy数组替换1d numpy数组中的元素
- 9. 用数组元素替换字符串
- 10. 替换元素
- 11. 用不同的数字替换数组元素,在javascript中
- 12. Javascript替换数组中的元素的字符
- 13. Java:替换数组中的值并移动数组中的元素
- 14. 用类实例替换数组中的元素
- 15. 添加和替换C#数组中的元素
- 16. 如何替换/重置TCL数组中的元素值?
- 17. 如何用“OTHER”替换数组中的空元素?
- 18. 检查2d数组中的相邻元素并替换它们
- 19. jquery用字符串替换数组中的元素
- 20. 查找并替换MongoDB中的子数组元素
- 21. 使用Regex将数组索引替换为数组元素。 Jquery
- 22. 替换要素级别中的元素
- 23. 如何用同一数组中的另一个元素替换数组元素中的值?
- 24. 替换n元树中的元素
- 25. 替换XML元素
- 26. 替换svg元素
- 27. 如何用其他东西替换元组中的元素?
- 28. 在swift 3中使用.append()时,数组中的元素被替换而不是数组获得新元素
- 29. 的bash:sed的查找和替换的数组元素的路径
- 30. HTML5:非替换元素与替换元素?
'B [ 'Y'] =='应该是'B [I] ='。 – nnnnnn
'b ['y']'应该是'b [i]',当你设置'b [i]'时,你应该用'='而不是'==' – hsh
不要忘记使用'var'在声明所有新变量之前,btw – naomik