数组中的每一项都是一个数字:
var items = Array(523,3452,334,31, ...5346);
如何用新物品替换旧物品?
例如,我们想用1010替换3452,该怎么做呢?
数组中的每一项都是一个数字:
var items = Array(523,3452,334,31, ...5346);
如何用新物品替换旧物品?
例如,我们想用1010替换3452,该怎么做呢?
当前回答
这里有一句话。它假设项将在数组中。
var项= [523,3452,334,31,5346] var替换= (arr, oldVal, newVal) => (arr[arr.indexOf(oldVal)] = newVal, arr) 控制台。日志(替换项,3452,1010)
其他回答
下面是一个可重用函数的基本答案:
function arrayFindReplace(array, findValue, replaceValue){
while(array.indexOf(findValue) !== -1){
let index = array.indexOf(findValue);
array[index] = replaceValue;
}
}
首先,像这样重写数组:
var items = [523,3452,334,31,...5346];
接下来,通过索引号访问数组中的元素。确定索引号的公式为:n-1
要替换数组中的第一项(n=1),写:
items[0] = Enter Your New Number;
在您的示例中,数字3452位于第二个位置(n=2)。所以确定索引号的公式是2-1 = 1。因此,编写下面的代码将3452替换为1010:
items[1] = 1010;
最简单的方法是这样。
var items = Array(523,3452,334,31, 5346);
var replaceWhat = 3452, replaceWith = 1010;
if ( ( i = items.indexOf(replaceWhat) ) >=0 ) items.splice(i, 1, replaceWith);
console.log(items);
>>> (5) [523, 1010, 334, 31, 5346]
如果使用一个复杂的对象(甚至是一个简单的对象),你可以使用es6, Array.prototype.findIndex是一个很好的选择。对于OP的数组,他们可以这样做,
const index = items.findIndex(x => x === 3452)
items[index] = 1010
对于更复杂的对象,这真的很管用。例如,
const index =
items.findIndex(
x => x.jerseyNumber === 9 && x.school === 'Ohio State'
)
items[index].lastName = 'Utah'
items[index].firstName = 'Johnny'
const items =数组(1,2,3,4,5); console.log(物品) items[items. indexof (2)] = 1010 console.log(物品)