0

我正在尝试完成一个 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'
    });

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

4

1 回答 1

2

使用 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);
         }
    }
}

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

于 2013-07-02T15:24:50.750 回答