如何添加“;名称:“;到现有的javascript对象/数组

How to add "name:" to existing javascript object/array

本文关键字:javascript 数组 对象 名称 何添加 添加      更新时间:2024-04-26

我真的希望你能帮我。我正在从一个Web服务中检索一些数据,我已经将其格式化并放入一个数组中,但我需要数组以如下方式结束:

Phase = [
{"name": "start"},
{"name": "middle"},
{"name": "end"}
];

现在我很确定它看起来是这样的:

Phase{"start", "middle", "end"}

我是用得到的

$.each(tempPhase, function(i, a){
if inArray(a, Phase === -1) Phase.push(a)});

但是如何将"name":部分添加到push();?

我的一个函数需要.name,我真的无法将其更改为不使用.name,因为该函数依赖于另外两个数组以及这一个

我确信这是一个相当简单的操作,任何帮助都将不胜感激。

/////感谢大家的帮助!!如果我能把两个答案都记为最好的,我会的,因为它们同样有用!:)////

您可以如下使用js map函数,

var Phase = ["start", "middle", "end"]; 
Phase = Phase.map(function(elem){
    return {"name":elem};
});

http://jsfiddle.net/eA23j/

如果创建自己的inArray,则几乎没有什么可更改的。

function inArray(value, array)
{
    var vName = value.name;
    for(var i = array.length; i--;)
    {
        if(array[i].name == vName) return true;
    }
    return false;
}

http://jsfiddle.net/2fXJ7/

或者更通用(如果你需要它来做其他事情):

function objectPropertyInArray(value, array, prop)
{
    var valProp = value[prop];
    for(var i = array.length; i--;)
    {
        if(array[i][prop] == valProp) return true;
    }
    return false;
}