【问题标题】:JavaScript - Add Objects to Object and Remove via Key/Value Pair [closed]JavaScript - 通过键/值对将对象添加到对象并删除 [关闭]
【发布时间】:2013-06-30 01:08:51
【问题描述】:

我正在尝试完成一个 JS 脚本,其目标是从对象中添加和删除名字和姓氏。它将通过 AJAX 传输到一个 PHP 脚本,然后该脚本将操作 JSON,所以请记住这一点......我应该用什么来制作一个对象:

  1. 有成对的名字和姓氏
  2. 可以通过声明一个键(即“First”)和一个值来删除其名字和姓氏对

我知道这很简单,但我读过的解决方案都没有奏效!对不起这个愚蠢的问题......

编辑:我无法识别每个全名 - 我只需要知道名字和姓氏。事实上,我有一个对象,里面有一堆对象,在 Chrome 的 JS 控制台中看起来像这样:

[Object, Object, Object, Object]
0: Object
    first: "Stewie"
    last: "Griffin"
1: Object
    first: "Peter"
    last: "Griffin"
2: Object
    first: "Stan"
    last: "Smith"
3: Object

实现这个的代码是:

window.selectednames.push({
first: $(this).find('.firstname').text(), 
last: $(this).find('.lastname').text()
});

或者为了测试目的,这里是数据:

window.selectednames.push({
    first: 'Stweie', 
    last: 'Griffin'
    });
window.selectednames.push({
    first: 'Peter', 
    last: 'Griffin'
    });
window.selectednames.push({
    first: 'Stan', 
    last: 'Smith'
    });

这看起来很理想!当我只知道名字和姓氏时(换句话说,当我不知道数字/计数/索引时),我只是不知道如何从这个对象集合中删除。

【问题讨论】:

  • 没有什么好东西是相关的。我想我可以尝试建立更多的上下文...
  • ^.大概读过这个:How to ask a good question
  • 请看我上面的编辑...

标签: javascript jquery ajax javascript-objects


【解决方案1】:

使用 javascript 对象:

例如,您可以有一个名称数组,如下所示

var names = new Array()
var name1 = new Object();
name1.first = "Brad";
name1.last = "Pitt";
names.push(name1);

当需要将数组转换为 json 时,只需使用

var jsonStr = JSON.stringify(a);

响应您的帖子编辑,您始终可以拥有以下功能

function removeNameFromList(nameList, firstName, lastName) {
    for(var i = nameList.length - 1; i >= 0; i--) {
         if(nameList[i].first == firstName && nameList[i].last == lastName) {
              nameList.splice(i, 1);
         }
    }
}

请注意,此函数将删除所有出现的名字和姓氏组合。

【讨论】:

  • 你的意思是JSON.stringify
  • 我确实做到了。谢谢菲利克斯
  • 请看我上面的编辑...
  • 谢谢,它是如此接近,但我现在收到此错误:Cannot read property 'first' of undefinedfor 行。它可以通过其中一个对象-当我在forif 之间运行console.log(nameList[i]); 时,它会输出一个对象,如果它是匹配的对象并且它恰好首先运行,它甚至会被删除,但是每次要通过的第二个对象都会失败并出现此错误...
  • 如果我在for 行之后立即添加if("first" in nameList[i]){ 并添加适当的},我得到Uncaught TypeError: Cannot use 'in' operator to search for 'first' in undefined,好像没有list[i]!这不像是整个对象都被破坏了——我仍然可以控制台记录它,它看起来就像事先做的那样。
猜你喜欢
  • 1970-01-01
  • 2016-02-11
  • 2023-03-10
  • 2022-06-29
  • 1970-01-01
  • 2010-11-13
  • 2018-10-16
相关资源
最近更新 更多