Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 从json jquery中删除位置_Javascript_Jquery - Fatal编程技术网

Javascript 从json jquery中删除位置

Javascript 从json jquery中删除位置,javascript,jquery,Javascript,Jquery,我不想展示同一产品的两倍。如果isbn重复出现,则不要将其显示为双精度 { “产品”:[{ “标识”:“001”, “isbn”:“2332”, “折扣”:“10%”, “书店”:“图书馆1” }, { “标识”:“002”, “isbn”:“2332”, “折扣”:“20%”, “书店”:“图书馆2” }, { “标识”:“003”, “isbn”:“3422”, “折扣”:“30%”, “书店”:“图书馆3” }, ] } 函数getData(){ $.getJSON('data.json'

我不想展示同一产品的两倍。如果isbn重复出现,则不要将其显示为双精度

{
“产品”:[{
“标识”:“001”,
“isbn”:“2332”,
“折扣”:“10%”,
“书店”:“图书馆1”
}, {
“标识”:“002”,
“isbn”:“2332”,
“折扣”:“20%”,
“书店”:“图书馆2”
}, {
“标识”:“003”,
“isbn”:“3422”,
“折扣”:“30%”,
“书店”:“图书馆3”
}, ]
}
函数getData(){
$.getJSON('data.json',函数(data){//get data from data.json
var产品=数据产品;
var tr=$(“”);
var项目=“”;
美元。每个(产品、功能(键、值){
项目+=“”;
项目+=“”+value.ident+“”;
项目+=“”+value.isbn+“”;
`在这里输入代码`
项目+=“”+价值.折扣+“”;
项目+=“”+value.bookstore+“”;
项目+=“”;
});
$(“#数据”).append(items);//在表中显示数据
});

将ISBN插入阵列,然后检查阵列中是否存在ISBN

var arr = [

    {
        "ident":"001",
        "isbn":"2332",
        "discount":"10%",
        "bookstore": "library1"
    },

    {
        "ident":"002",
        "isbn":"2332",
        "discount":"20%",
        "bookstore": "library2"
    },

     {
        "ident":"003",
        "isbn":"3422",
        "discount":"30%",
        "bookstore": "library3"
    }
    ];

    var arrISBN = [];

    for(let index in arr) {

        if ( arrISBN.indexOf(arr[index].isbn) == -1  ) {
           arrISBN.push( arr[index].isbn);
            console.log("No duplicates");
        }


}

您可以保留数组中的ISBN列表,然后在使用该数组之前检查该数组是否包含ISBN

var bookList = [];

$.each(products, function(key, value) {

  // Pushes value.isbn to the bookList array
  bookList.push(value.isbn);

  // If the IBSN is not present in bookList then act as if it's a new entry instead of repeating it.
  if (!bookList.includes(value.isbn)) {
    // Do something with the data here.
  }
}

您可以通过一个简单的
for
循环来实现这一点。为了解决这个问题,我硬编码了
JSON
数据。但是,您可以使用
$.getJSON()
例程来实现ajax请求(如上所述),结果将是相同的:

var json={
“产品”:[{
“标识”:“001”,
“isbn”:“2332”,
“折扣”:“10%”,
“书店”:“图书馆1”
}, {
“标识”:“002”,
“isbn”:“2332”,
“折扣”:“20%”,
“书店”:“图书馆2”
}, {
“标识”:“003”,
“isbn”:“3422”,
“折扣”:“30%”,
“书店”:“图书馆3”
}, ]
};
var乘积={};
for(var a=0,len=json.products.length;a

为什么你的问题描述中有这么多重复?很好的咒语!知道哪一个被保留或丢弃的规则是什么?第一个?我很多重复都是错误添加的。我sorry@Piotr这将有助于:在td“书店”请在两个库中查看它。好的方法。需要注意的是,
Array.prototype.includes
当前在IE中不受支持。如果您选择实现此方法,您将需要使用MDN提供的。啊,是的,很好!@JamesIves您可以动态构建表,并避免添加包含重复值的行。你的主意是什么?非常感谢。太好了