Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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 如何在JS中复制JSON对象_Javascript_Json - Fatal编程技术网

Javascript 如何在JS中复制JSON对象

Javascript 如何在JS中复制JSON对象,javascript,json,Javascript,Json,我有一个json对象,它包含一些数据,我正在对该对象进行搜索,当结果匹配时,我想将其保存到另一个对象。最好的方法是什么 我需要一些帮助将我想要的数据复制到新变量 这是我的 myjson = JSON.parse(jsonData); for(var x=0; x<myjson.ROWCOUNT;x++){ if(myjson.DATA.PARTNUMBER[x].search(regex) != -1){ console.log(myjson.DATA.PARTNU

我有一个json对象,它包含一些数据,我正在对该对象进行搜索,当结果匹配时,我想将其保存到另一个对象。最好的方法是什么

我需要一些帮助将我想要的数据复制到新变量

这是我的

myjson = JSON.parse(jsonData);
for(var x=0; x<myjson.ROWCOUNT;x++){
    if(myjson.DATA.PARTNUMBER[x].search(regex) != -1){
        console.log(myjson.DATA.PARTNUMBER[x]);
    }
}
myjson=JSON.parse(jsonData);

for(var x=0;xmyjson.DATA[x]是对包含匹配零件号的对象的引用。根据您想对其执行的操作,您可以将其添加到数组中以供将来访问。例如:

myCopies = [];
myjson = JSON.parse(jsonData);
for(var x=0; x<myjson.ROWCOUNT;x++){
    if(myjson.DATA.PARTNUMBER[x].search(regex) != -1){
        console.log(myjson.DATA.PARTNUMBER[x]);
        myCopies.push(myjson.DATA[x]);
    }
}

// myCopies now contains references to all objects matched by partnumber
myCopies=[];
myjson=JSON.parse(jsonData);

对于(var x=0;x来说,如果存在匹配的对象,简单的方法是硬拷贝所有属性

var myjson = JSON.parse(jsonData),
    output = [],
    matchedObj
;

for(var x=0; x<myjson.ROWCOUNT;x++){
    if(myjson.DATA.PARTNUMBER[x].search(regex) != -1){
        output.push({
            ID: myjson.DATA.ID[x],
            PARTNUMBER: myjson.DATA.PARTNUMBER[x],
            DESCRIPTION: myjson.DATA.DESCRIPTION[x],
            PRICE: myjson.DATA.PRICE[x]
        });
    }
}

console.log(output);
var myjson = JSON.parse(jsonData),
    output = [],
    matchedObj,
    clone = function(data, i) {
        var copy = {};

        for(var attribute in data) {
            if (data.hasOwnProperty(attribute )) {
                copy[attribute] = data[attribute][i];
            }
        }

        return copy;
    }
;


for(var x=0; x<myjson.ROWCOUNT;x++){
    if(myjson.DATA.PARTNUMBER[x].search(regex) != -1){
        output.push(clone(myjson.DATA, x));
    }
}

console.log(output);
var myjson=JSON.parse(jsonData),
输出=[],
匹配对象
;

对于(var x=0;x,您可以使用该帖子中的克隆函数复制对象


它复制的对象不取决于对象的结构。

您的意思是要过滤,而不是复制?您可以将其插入DOM中的属性(例如#ID)然后根据需要检索。我认为我的答案符合您的需要。我有一个resultOBJ变量为空,因此当它匹配时,我想将数据添加到resultOBJ变量。是否只有一个匹配或多个匹配?Ben,它可能有多个匹配。
function clone(obj) {
    if (null == obj || "object" != typeof obj) return obj;
    var copy = obj.constructor();
    for (var attr in obj) {
        if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr];
    }
    return copy;
}