从javascript钛中的数组中删除项目

Posted

技术标签:

【中文标题】从javascript钛中的数组中删除项目【英文标题】:Remove the item from array in javascript titanium 【发布时间】:2015-07-21 12:31:32 【问题描述】:

这是我的 json 数组:

var myObjectString = JSON.stringify(data);
Ti.API.info("PRICE" + " " + myObjectString);

[
    "name": "Bajaj 200 mm Ultima PT01 Personal Fan",
    "image": "/images/T/xctmpQmkaHM.png",
    "totalPrice": 999,
    "itemPrice": 999,
    "itemCount": 1
]

这里我需要删除图像元素(键+值)并存储如下值:

[
    "name": "Bajaj 200 mm Ultima PT01 Personal Fan",
    "totalPrice": 999,
    "itemPrice": 999,
    "itemCount": 1
]

我该怎么办?我需要将此结果保存在另一个变量中吗?我能怎么做 ?我怎样才能得到上述结果。

编辑:

来自 Alex Alksne 评论:

静态分配的代码工作正常。

但如果我们动态地分配一个值意味着它不起作用。

var myObjectString = JSON.stringify(data);
console.log(myObjectString);
delete myObjectString[0].image;
 console.log(myObjectString);

["name":"Bajaj 200 mm Ultima PT01 个人风扇","image":"/images/T/xctmpQmkaHM.png","totalPrice":999,"itemPrice":999,"itemCount": 1]

["name":"Bajaj 200 mm Ultima PT01 个人风扇","image":"/images/T/xctmpQmkaHM.png","totalPrice":999,"itemPrice":999,"itemCount": 1]

【问题讨论】:

我明白你现在的意思了;确保在使用 delete 之前不要运行 var myObjectString = JSON.stringify(data);delete 仅适用于对象,不适用于字符串。所以先delete,然后stringify() 【参考方案1】:

要删除 javascript 对象中的键和值,您需要使用 delete 关键字(只需分配 PRICE[0].image = undefined 只会删除值)。

例如,如果您的数据结构如下所示:

var myObject;
myObject = 
[ 
  "name": "Bajaj 200 mm Ultima PT01 Personal Fan", 
  "image": "/images/T/xctmpQmkaHM.png", 
  "totalPrice": 999, 
  "itemPrice": 999, 
  "itemCount": 1 
]

您可以通过以下方式删除图像键/值对:delete myObject[0].image。现在,如果你console.log(myObject),你会得到:

[ 
  "name": "Bajaj 200 mm Ultima PT01 Personal Fan", 
  "totalPrice": 999, 
  "itemPrice": 999, 
  "itemCount": 1 
]

要记住的是delete 关键字仅适用于对象而不适用于字符串。如果你的数据原本是String的形式,你必须先JSON.parse(myObject)才能使用delete。例如:

var myObjectString = 
'[
  "name": "Bajaj 200 mm Ultima PT01 Personal Fan", 
  "image": "/images/T/xctmpQmkaHM.png", 
  "totalPrice": "999", 
  "itemPrice": "999", 
  "itemCount": "1"
]'

var myObject = JSON.parse(myObjectString);
delete myObject[0].image;

【讨论】:

PRICE 值不存在......我如何从这里识别 PRICE 值......我已经声明了 var myObjectString; myObjectString = [ "name": "Bajaj 200 mm Ultima PT01 Personal Fan", "image": "/images/T/xctmpQmkaHM.png", "totalPrice": 999, "itemPrice": 999, "itemCount": 1 ] 我已经更新了我的例子,让我知道它是否有意义。 请检查我更新的问题...静态表示它正在工作...动态分配值表示它不工作。 它不起作用的原因是因为您试图在字符串上使用delete。您需要先将字符串转换为对象,然后才能执行此操作。让我知道这是否更接近您想要的。 是的,我从您的 cmets delete 得到的输出仅适用于对象,不适用于字符串。所以先删除,然后 stringify()..非常感谢 :)【参考方案2】:

尝试“删除”为..

delete PRICE[0].image;

【讨论】:

以上是关于从javascript钛中的数组中删除项目的主要内容,如果未能解决你的问题,请参考以下文章

使用jquery表中的复选框从数组中删除JavaScript对象

JavaScript Javascript从数组中删除项目

从 Javascript/React Native 中的多个字符串数组中删除 html 标签

在 JavaScript 中从数组中删除一个项目

javascript 从数组中删除项目

JavaScript 使用jQuery从数组中删除项目