Javascript 更改自定义数组中键的值

Javascript 更改自定义数组中键的值,javascript,jquery,underscore.js,arrays,Javascript,Jquery,Underscore.js,Arrays,单击fieldname的ASC或DESC链接,创建键:值对对象并将其推送到数组中; 如果键存在,则使用选中的单击事件替换该值,并更新数组键:值 范例 单击按名称排序-描述: [{"name":"desc"}] [{"name":"desc"},{"age":"desc"} ] 再次单击按名称排序-ASC: [{"name":"asc"}] 单击按年龄排序-描述: [{"name":"asc"},{"age":"desc"}] 再次单击按名称排序-描述: [{"name":"desc"}]

单击fieldname的ASC或DESC链接,创建键:值对对象并将其推送到数组中; 如果键存在,则使用选中的单击事件替换该值,并更新数组键:值

范例

单击按名称排序-描述:

[{"name":"desc"}]
[{"name":"desc"},{"age":"desc"} ]
再次单击按名称排序-ASC:

[{"name":"asc"}]
单击按年龄排序-描述:

[{"name":"asc"},{"age":"desc"}]
再次单击按名称排序-描述:

[{"name":"desc"}]
[{"name":"desc"},{"age":"desc"} ]

$scope.clickME=函数(字段名、订单类型){
var obj={};
obj[fieldName]=订单类型;
updateArray($scope.sortList,obj);
}
var updateArray=函数(数组,newObject){
//console.log(newObject);
var hash={};
var i=0;
对于(i=0;i
您可以使用jquery扩展方法。它接受两个对象,将新对象添加到原始对象并替换原始对象

$scope.clickMe = function(fieldName, orderType)
{
    var obj = {};
    obj[fieldName] = orderType;
    $.extend($scope.sortList, obj);
}
由于已经将它们都强制转换为对象,所以只需直接使用extend

如果您想使用字符串而不是进行强制转换,可以这样做

$scope.sortList[fieldName] = orderType;

如果存在,它将替换该值,如果不存在,则添加一个新值

这里有什么问题?在数组中查找自定义字段名(名称、年龄或性别),并将其值替换为“asc”或“desc”;什么阵列?您发布的代码中没有数组。代码应该发布在此网站上,而不是从其他地方链接。@Pointy:在实际功能存在的地方共享了演示链接!键是作为参数传递的字段名,单击事件可以是ASC或DESC;例如:按名称排序:更改为显示如何将其与值一起使用,以及如何避免强制转换,因为它始终是单个键值对