如何用Javascriptreplace数组中的项目?

这个数组的每一项都是一些数字。

var items = Array(523,3452,334,31, ...5346); 

如何用一个新的数组replace一些数字?

例如,我们想用1010代替3452,我们将如何做到这一点?

 var index = items.indexOf(3452); if (index !== -1) { items[index] = 1010; } 

另外build议您不要使用构造函数方法来初始化您的数组。 相反,使用字面语法:

 var items = [523, 3452, 334, 31, 5346]; 

如果您使用简洁的JavaScript并希望缩短-1比较,则还可以使用~运算符:

 var index = items.indexOf(3452); if (~index) { items[index] = 1010; } 

有时候我甚至想写一个contains函数来抽象这个检查,并且更容易理解正在发生的事情。 有什么可怕的是这对数组和string都有效:

 var contains = function (haystack, needle) { return !!~haystack.indexOf(needle); }; // can be used like so now: if (contains(items, 3452)) { // do something else... } 

从string的ES6 / ES2015开始,为数组ES2016而build议,可以更容易地确定源是否包含另一个值:

 if (haystack.includes(needle)) { // do your thing } 

Array.indexOf()方法将replace第一个实例。 为了让每个实例都使用Array.map()

 a = a.map(function(item) { return item == 3452 ? 1010 : item; }); 

当然,这会创build一个新的arrays。 如果你想做到这一点,使用Array.forEach()

 a.forEach(function(item, i) { if (item == 3452) a[i] = 1010; }); 

使用indexOf来查找元素。

 var i = items.indexOf(3452); items[i] = 1010; 

轻松完成for循环。

 for (var i = 0; i < items.length; i++) if (items[i] == 3452) items[i] = 1010; 

最简单的方法是使用一些像underscorejs和map方法的库。

 var items = Array(523,3452,334,31,...5346); _.map(items, function(num) { return (num == 3452) ? 1010 : num; }); => [523, 1010, 334, 31, ...5346] 

您可以使用索引编辑任何数量的列表

例如 :

 items[0] = 5; items[5] = 100; 
 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

使用jQuery,可能很简单:

 var items = Array(523,3452,334,31,5346); var val = 3452; // we want to replace this var index = $.inArray(val, items); // get index of specific value items[index] = 1010; // execute! alert(items); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

首先,像这样重写你的数组:

 var items = [523,3452,334,31,...5346]; 

接下来,通过索引号访问数组中的元素。 确定索引号的公式是: n-1

要replace数组中的第一项(n=1) ,请写下:

 items[0] = Enter Your New Number; 

在你的例子中,数字3452在第二位(n=2) 。 所以确定索引号的公式是2-1 = 1 。 所以写下面的代码来replace34521010

 items[1] = 1010;