数组中的每一项都是一个数字:
var items = Array(523,3452,334,31, ...5346);
如何用新物品替换旧物品?
例如,我们想用1010替换3452,该怎么做呢?
数组中的每一项都是一个数字:
var items = Array(523,3452,334,31, ...5346);
如何用新物品替换旧物品?
例如,我们想用1010替换3452,该怎么做呢?
当前回答
如果你想要一个简单的糖纸,你可以:
(elements = elements.filter(element => element.id !== updatedElement.id)).push(updatedElement);
如:
let elements = [ { id: 1, name: 'element one' }, { id: 2, name: 'element two'} ];
const updatedElement = { id: 1, name: 'updated element one' };
如果你没有id,你可以像这样字符串化元素:
(elements = elements.filter(element => JSON.stringify(element) !== JSON.stringify(updatedElement))).push(updatedElement);
其他回答
如果你想要一个简单的糖纸,你可以:
(elements = elements.filter(element => element.id !== updatedElement.id)).push(updatedElement);
如:
let elements = [ { id: 1, name: 'element one' }, { id: 2, name: 'element two'} ];
const updatedElement = { id: 1, name: 'updated element one' };
如果你没有id,你可以像这样字符串化元素:
(elements = elements.filter(element => JSON.stringify(element) !== JSON.stringify(updatedElement))).push(updatedElement);
最简单的方法是这样。
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]
这个就行了
Array.prototype.replace = function(a, b) {
return this.map(item => item == a ? b : item)
}
用法:
let items = ['hi', 'hi', 'hello', 'hi', 'hello', 'hello', 'hi']
console.log(items.replace('hello', 'hi'))
输出:
['hi', 'hi', 'hi', 'hi', 'hi', 'hi', 'hi']
好处是,每个数组都有.replace()属性。
var items = Array(523,3452,334,31,5346);
如果你知道它的价值,
items[items.indexOf(334)] = 1010;
如果你想知道这个值是否存在,那么使用,
var point = items.indexOf(334);
if (point !== -1) {
items[point] = 1010;
}
如果你知道地点(位置),那么直接使用,
items[--position] = 1010;
如果你想替换一些元素,你知道起始位置只意味着,
items.splice(2, 1, 1010, 1220);
有关.splice的更多信息
ES6道:
const items = Array(523, 3452, 334, 31, ...5346);
我们想用1010替换3452,解决方案:
const newItems = items.map(item => item === 3452 ? 1010 : item);
当然,这个问题是很多年前的问题了,现在我更喜欢使用不可变的解决方案,当然,这对ReactJS来说是很棒的。
为了经常使用,我提供以下功能:
const itemReplacer = (array, oldItem, newItem) =>
array.map(item => item === oldItem ? newItem : item);