如何用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
。 所以写下面的代码来replace3452
和1010
:
items[1] = 1010;