javascript - 即使数组有键,json 对象键也会被添加

标签 javascript json

我正在循环遍历一个数组并检查第二个数组是否具有该名称的键。如果没有,则将此当前名称添加为第二个数组的键。我用 hasOwnPropertyin 检查,但在这两种情况下, key 都被添加到第二个数组中,尽管该名称的 key 已经存在。如何阻止 key 获取如果已经存在则添加?

function(){
    var _arraySource = ['Tea', 'Coffe', 'Banana', 'Orange', 'Tea'];
    var _jsonArray = [];

    for(var i = 0, j = _arraySource.length; i<j; i++){
        if(_jsonArray.hasOwnProperty(_arraySource[i])){
            //Do nothing
        }
        else{
          var _key =_arraySource[i];
          var myObj = {};

          myObj[_key] = "";
          _jsonArray.push(myObj);
        }
    }

    console.log(_jsonArray);
}

JSFIDDLE

最佳答案

_jsonArray 是对象数组。您必须检查每个对象(如果该属性已存在)。

试试这个代码。

var _arraySource = ['Tea', 'Coffe', 'Banana', 'Orange', 'Tea'];
var _jsonArray = [];
  for (var i = 0, j = _arraySource.length; i < j; i++) {
    var obj = $.map(_jsonArray, function (data) {
      if (data.hasOwnProperty(_arraySource[i]))
        return data;
      });
     if (obj.length) {
        console.log(_arraySource[i]);
     }
     else {
       var _key = _arraySource[i];
       var myObj = {};
       myObj[_key] = "";
       _jsonArray.push(myObj);
     }
  }
console.log(_jsonArray);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

希望这对您有帮助。

关于javascript - 即使数组有键,json 对象键也会被添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33913922/

相关文章:

javascript - 在 Angular 中进行异步 ajax 调用

javascript - jquery 鼠标悬停不工作。只在 jfiddle 工作

javascript - 获取给定前缀的完整类名

ios - Restkit 基本 url 响应

ios - 为什么我收到错误代码=3840 解析 JSON?

json - FilteringSelect 与 QueryReadStore : selection doesn't stick

javascript - 处理文件时动态显示多个 JSON 响应

javascript - 绘制ckeditor插件创建的chart.js

javascript - 是否可以使用 jQuery 搜索 json 结果

javascript - React setTimeout 和clearTimeout