是否可以用字符串替换javascript数组中的数字值?
例如:
var a=[1,2,3,4,5]
我需要用苹果代替#3。
有可能吗?
答案 0 :(得分:3)
使用.indexOf(3)
查找3在数组中的位置,然后只需执行a[index] = "apple";
即可替换该值。我在下面为您创建了一个片段。
var a = [1, 2, 3, 4, 5];
var index = a.indexOf(3);
console.log("Before: " + a);
a[index] = "apple";
console.log("After: " + a);
答案 1 :(得分:1)
是的,当然可以!我建议您阅读一些有关JavaScript数组的documentation,以了解它们的功能。
基本上,javascript数组是高级列表对象,可以由许多不同的数据类型组成。如果您在这里问到它之前真的尝试过您想知道的是什么,那么您会发现它很简单。
var a = [1,2,3,4,5];
a[2] = "apple";
将数组a
的第三个元素替换为"apple"
。
答案 2 :(得分:1)
Aniket G的解决方案有效,但仅替换第一次出现的值。
// arr is the array we're acting on
// n is the value we want to replace
// str is the string that we want n replaced with
function replaceNumWithStringInArray(arr, n, str) {
for (let i = 0; i < arr.length; ++i) {
if (arr[i] === n) {
// we found a match, replace the former value (n) with a string (str)
arr[i] = str;
}
}
// we don't have to return anything here, because it modifies the array in place
}
var a = [1,2,3,4,5,3]; // added another 3 to illustrate that it replaces all occurences of n
console.log('before', a);
replaceNumWithStringInArray(a, 3, 'apple');
console.log('after', a);
答案 3 :(得分:0)
您可以遍历数组并检查给定的值。如果该值出现多次,则特别有用:
function stringifyValue(array, valueToStringify) {
for(let i = 0; i < array.length; i++) {
if(array[i] === valueToStringify){
array[i] = '' + array[i];
}
}
}
或者如果您想更新给定索引处的值:
const indexWithValue = 3;
array[indexWithValue] = '' + array[indexWithValue];