JavaScript-通过键/值对向对象添加对象和删除对象
我正在尝试完成一个JS脚本,目标是从对象中添加和删除名字和姓氏。它将通过AJAX传输到一个PHP脚本,然后该脚本将操作JSON,所以请记住。。。我应该用什么来制作一个对象:JavaScript-通过键/值对向对象添加对象和删除对象,javascript,jquery,ajax,javascript-objects,Javascript,Jquery,Ajax,Javascript Objects,我正在尝试完成一个JS脚本,目标是从对象中添加和删除名字和姓氏。它将通过AJAX传输到一个PHP脚本,然后该脚本将操作JSON,所以请记住。。。我应该用什么来制作一个对象: 有两对名字和姓氏 可以通过声明一个键(即“first”)和一个值来删除其名字和姓氏对 我知道这很简单,但我读过的所有解决方案都没有奏效!抱歉问了这么愚蠢的问题 编辑:我无法识别每个全名-我只需要知道名字和姓氏。事实上,我有一个对象,里面有一堆对象,在Chrome的JS控制台中看起来像这样: [Object, Object,
[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'
});
这似乎很理想!当我只知道名字和姓氏时(换句话说,当我不知道数字/计数/索引时),我不知道如何从这个对象集合中删除 使用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
。我确实读过。感谢FelixPlease查看我在上面的编辑…谢谢,它太近了,但是我现在得到了一个错误:无法读取for
行中未定义的
的属性“first”。它可以通过其中一个对象——当我运行console.log(nameList[I])时
在for
和if
之间,它输出一个对象,如果它是匹配的对象,并且恰好是第一个运行,它甚至会被删除,但是第二个要运行的对象每次都会失败,并出现此错误…如果我在名称列表[I]中添加if(“first”){
在for
行的之后立即添加相应的}
,我得到未捕获的TypeError:无法使用'in'运算符在未定义的中搜索'first',好像没有列表[I]
!这并不是整个对象都在被销毁-我仍然可以对其进行控制台记录,而且它看起来像是事先做的。