使用子字符串更改数组元素值

时间:2014-12-24 10:19:02

标签: javascript jquery arrays json

在这里,我使用substring(0,4)方法修改数组元素,但在控制台中抛出此错误。

Javascript ReferenceError: invalid assignment left-hand side

通常我们使用

obj1.messages[2].splice(2, 1);  //To delete the particular array elements

但是,我需要通过获取子字符串来删除数组元素“ 2012 1224”的特定值。并将值重新指定为 1000

怎么可能?

var obj = {
    equipments:'first',
    messages:['20121224','20131123','20141025'],
}
console.log(obj);

obj1 = obj;
if (obj1["equipments"] == 'first' ) {
    // obj1.messages[2].splice(2, 1); 
    alert(obj1.messages[2].substring(0,4));
    delete obj1.messages[2].substring(0,4);
    obj1.messages[2].substring(0,4) = '1000';
}
console.log(obj1);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

3 个答案:

答案 0 :(得分:3)

您可以使用它来实现它。

obj1.messages[2] = '1000' + obj1.messages[2].substring(4);

&#13;
&#13;
var obj = {
    equipments:'first',
    messages:['20121224','20131123','20141025'],
}
console.log(obj);

obj1 = obj;
if (obj1["equipments"] == 'first' ) {
    obj1.messages[2] = '1000' + obj1.messages[2].substring(4) ;
    alert( obj1.messages[2])
}
console.log(obj1);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

试试这个,

var newString='1000'+obj1.messages[2].substring(4,obj1.messages[2].length);

答案 2 :(得分:-1)

因为substring返回指定的字符串的一部分,在你的情况下是前4个字符。 要替换值,您应该使用replace,例如:

obj1.messages[2] = obj1.messages[2].replace(/201\d/, '1000');