Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 查找特定属性,然后推送到数组_Javascript - Fatal编程技术网

Javascript 查找特定属性,然后推送到数组

Javascript 查找特定属性,然后推送到数组,javascript,Javascript,我必须创建以下json文件。我的目标是正确地找到所有name,并将其值添加到name数组中 var data = { "Fruits": [{ "name": "apple", "added_date": "", "expired_date": "" }, { "name": "orange", "added_date": "", "expired_date": "" }, { "name": "strawberry",

我必须创建以下json文件。我的目标是正确地找到所有
name
,并将其值添加到name数组中

var data = {
  "Fruits": [{
    "name": "apple",
    "added_date": "",
    "expired_date": ""
  }, {
    "name": "orange",
    "added_date": "",
    "expired_date": ""
  }, {
    "name": "strawberry",
    "added_date": "",
    "expired_date": ""
  }, {
    "name": "banana",
    "added_date": "",
    "expired_date": ""
  }],
  "Meat": [{
    "name": "beef",
    "added_date": "",
    "expired_date": ""
  }, {
    "name": "chicken",
    "added_date": "",
    "expired_date": ""
  }, {
    "name": "fish",
    "added_date": "",
    "expired_date": ""
  }, {
    "name": "pork",
    "added_date": "",
    "expired_date": ""
  }],
  "Vegetable": [{
    "name": "cucumber",
    "added_date": "",
    "expired_date": ""
  }, {
    "name": "kale",
    "added_date": "",
    "expired_date": ""
  }],
  "Spice": [{
    "name": "cajun",
    "added_date": "",
    "expired_date": ""
  }, {
    "name": "garlic",
    "added_date": "",
    "expired_date": ""
  }]
};
我想出了类似的方法,但在
push
函数上给我一个错误。有没有更好的办法来解决这个问题

var name = [];
for (var key in data) {
  for (var i = 0; i < data[key].length; i++) {
    console.log(data[key][i].name);
    name.push(data[key][i].name);
  }
}
console.log(name);
var name=[];
for(var输入数据){
对于(var i=0;i
问题在于变量名
name
,因为它在全局范围内,您试图覆盖只接受字符串值的
窗口.name
属性

var数据={
“水果”:[{
“名称”:“苹果”,
“添加的日期”:“,
“过期日期”:”
}, {
“名称”:“橙色”,
“添加的日期”:“,
“过期日期”:”
}, {
“名称”:“草莓”,
“添加的日期”:“,
“过期日期”:”
}, {
“名称”:“香蕉”,
“添加的日期”:“,
“过期日期”:”
}],
“肉”:[{
“名称”:“牛肉”,
“添加的日期”:“,
“过期日期”:”
}, {
“名称”:“鸡肉”,
“添加的日期”:“,
“过期日期”:”
}, {
“名字”:“鱼”,
“添加的日期”:“,
“过期日期”:”
}, {
“名称”:“猪肉”,
“添加的日期”:“,
“过期日期”:”
}],
“蔬菜”:[{
“名称”:“黄瓜”,
“添加的日期”:“,
“过期日期”:”
}, {
“名称”:“羽衣甘蓝”,
“添加的日期”:“,
“过期日期”:”
}],
“香料”:[{
“姓名”:“卡君”,
“添加的日期”:“,
“过期日期”:”
}, {
“名称”:“大蒜”,
“添加的日期”:“,
“过期日期”:”
}]
};
变量名称=[];
snippet.log('name-value:'+name+':'+typeof-name+':')
变量名称=[];
for(var输入数据){
对于(var i=0;i

问题在于变量名
name
,因为它在全局范围内,您试图覆盖只接受字符串值的
窗口.name
属性

var数据={
“水果”:[{
“名称”:“苹果”,
“添加的日期”:“,
“过期日期”:”
}, {
“名称”:“橙色”,
“添加的日期”:“,
“过期日期”:”
}, {
“名称”:“草莓”,
“添加的日期”:“,
“过期日期”:”
}, {
“名称”:“香蕉”,
“添加的日期”:“,
“过期日期”:”
}],
“肉”:[{
“名称”:“牛肉”,
“添加的日期”:“,
“过期日期”:”
}, {
“名称”:“鸡肉”,
“添加的日期”:“,
“过期日期”:”
}, {
“名字”:“鱼”,
“添加的日期”:“,
“过期日期”:”
}, {
“名称”:“猪肉”,
“添加的日期”:“,
“过期日期”:”
}],
“蔬菜”:[{
“名称”:“黄瓜”,
“添加的日期”:“,
“过期日期”:”
}, {
“名称”:“羽衣甘蓝”,
“添加的日期”:“,
“过期日期”:”
}],
“香料”:[{
“姓名”:“卡君”,
“添加的日期”:“,
“过期日期”:”
}, {
“名称”:“大蒜”,
“添加的日期”:“,
“过期日期”:”
}]
};
变量名称=[];
snippet.log('name-value:'+name+':'+typeof-name+':')
变量名称=[];
for(var输入数据){
对于(var i=0;i


错误是什么?错误是什么?当然,这是正确的,但真正的问题是为什么OP编写了在全局上下文中运行的代码,
name
已经被定义为具有特殊含义,而不是只在函数中编写,这样可以很好地工作。当然,这是正确的,但真正的问题是,为什么OP编写了在全局上下文中运行的代码,
name
已经被定义为具有特殊含义,而不是只在函数中编写,这样就可以了。