我真的希望你能帮助我。我正在从webservice中检索一些数据,我已将其格式化并放入一个数组中,但是我需要这个数组最终结束:
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”:part添加到push();?
我需要.name
作为我的函数,我无法真正改变它以不使用.name,因为该函数依赖于其他2个数组以及此函数
我很确定这是一个相当简单的操作,感谢任何帮助。
/////感谢每个人的帮助!!如果我能够将两个答案都标记为最佳答案,因为它们同样有用! :) ////
答案 0 :(得分:1)
您可以使用js map
功能,如下所示,
var Phase = ["start", "middle", "end"];
Phase = Phase.map(function(elem){
return {"name":elem};
});
答案 1 :(得分:0)
如果您创建自己的inArray
,则几乎无需更改。
function inArray(value, array)
{
var vName = value.name;
for(var i = array.length; i--;)
{
if(array[i].name == vName) return true;
}
return false;
}
或者更一般(如果你需要它做其他事情):
function objectPropertyInArray(value, array, prop)
{
var valProp = value[prop];
for(var i = array.length; i--;)
{
if(array[i][prop] == valProp) return true;
}
return false;
}