选择值以推送jquery

选择值以推送jquery,jquery,json,Jquery,Json,JSON 1 [{ "contactflag": "0", "City": "America", "District": "District I", "zipcode": "4311" }, { "contactflag": "1", "City": "America", "District": "District II", "zipcode": "4330" }] JSON 2 [{ "contactflag": "0"

JSON 1

[{
    "contactflag": "0",
    "City": "America",
    "District": "District I",
    "zipcode": "4311"
}, {
    "contactflag": "1",
    "City": "America",
    "District": "District II",
    "zipcode": "4330"
}]
JSON 2

[{
    "contactflag": "0",
    "City": "Japan",
    "District": "District I",
    "zipcode": "7488"
}]

for (var ii = 0; ii < address.length; ii++) {
    if (address[ii].contactflag == 1) {
        addressTab.push(address[ii].City + ", " + address[ii].District + " " + address[ii].zipcode);
    } else {
        addressTab.push(address[ii].City + ", " + address[ii].District + " " + address[ii].zipcode);
    }
}
[{
“contactflag”:“0”,
“城市”:“日本”,
“地区”:“第一区”,
“zipcode”:“7488”
}]
对于(变量ii=0;ii
我有上面的示例JSON和代码。我要做的是将地址推送到数组中。我的
条件是推送联系人地址1(如果存在),否则推送联系人地址0
。但我上面的代码发生的情况是,即使存在联系人地址1,它仍然会推送联系人地址0

在示例1中:

当我只想得到
[“美国,第一区,4311”,“美国,第二区,4330”]时,我得到了
[“美国,第二区,4330”]

如何做到这一点

更新


以下内容适合您

   for (var ii = 0; ii < address.length; ii++) {
    if (address[ii].contactflag == "1") {
        addressTab = [];
        addressTab.push(address[ii].City + ", " + address[ii].District + " " + address[ii].zipcode);
    }
   else
    {
    addressTab.push(address[0].City + ", " + address[0].District + " " + address[0].zipcode);
    }
  }
for(变量ii=0;ii
地址[ii]。如果该值存在,则contactflag==1
始终为真。使用地址[ii]。contactflag==“1”
,因为您已将1存储为字符串

if (address[ii].contactflag == "1") {
    addressTab.push(address[ii].City + ", " + address[ii].District + " " + address[ii].zipcode);
} else {
    addressTab.push(address[ii].City + ", " + address[ii].District + " " + address[ii].zipcode);
}

我想,这就是你想做的:

var address = [{
    "contactflag": "0",
    "City": "Japan",
    "District": "District I",
    "zipcode": "7488"
}];

var addressTab = [];

for (var ii = 0; ii < address.length; ii++) {
    if (address[ii].contactflag === "1") {
        addressTab.push(address[ii].City + ", " + address[ii].District + " " + address[ii].zipcode);
    }
}

if (addressTab.length == 0) {
    addressTab.push(address[0].City + ", " + address[0].District + " " + address[0].zipcode);
}
var地址=[{
“contactflag”:“0”,
“城市”:“日本”,
“地区”:“第一区”,
“zipcode”:“7488”
}];
var addressTab=[];
对于(变量ii=0;ii
您的代码的问题是,您的代码在值为
1
时运行一个,在值为
else
时运行一个,因此它会同时推送这两个值

解决方案是移除其他部分

for (var ii = 0; ii < address.length; ii++) {
  if (address[ii].contactflag == 1) {
    addressTab.push(address[ii].City + ", " + address[ii].District + " " + address[ii].zipcode);
  }
}
for(变量ii=0;ii
现在,当条件为真时,它将只推送该值

或者干脆清空数组

var地址=[{
“contactflag”:“1”,
“城市”:“美国”,
“地区”:“第二区”,
“zipcode”:“4330”
}, {
“contactflag”:“0”,
“城市”:“美国”,
“地区”:“第一区”,
“zipcode”:“4311”
}],
addressTab=[];
对于(变量ii=0;iiaddressTab=[];//什么是
ii
的值?很抱歉,这是我的for循环,它是
var ii=0;
i将包括for循环@rorymcrossanhow关于地址[ii]。contactflag==“1”?地址[ii]。如果该值存在,contactflag==1始终为真。使用地址[ii]。contactflag==“1”您在
if
else
块中完全执行sam操作。当您的代码生成控制台出现问题时,我仍然会获取所有地址,而不是带有contactflag 1的地址。log(address[ii].contactflag)&验证其中的内容。或者向我们展示我使用的完整codecheck演示
“1”
我会检查这个答案给我一分钟哇这能给我一个我没想到的选项让我检查一下@Jai:)如果我删除了else部分,那么只会添加带有contactflag 1的联系人地址。我的JSON示例2会有问题。给我一分钟时间a把代码放在我的项目中:)@guradio然后我猜
如果/else
清空数组会是更好的选择。如果
地址
数组的第一项有
的“contactflag”:“1”
,第二项是
“0”
@Adam,则不起作用。如果是这样,则需要
中断;