动态插入并从数组中检索键值对 - Javascript
Dynamically Insert and Retriev the key value pair from array - Javascript
尝试将动态键和值插入到 html 页面的数组对象中。
var answers=[];
$(".btn-like, .btn-dislike").click(function() {
var $this = $(this);
var value = $this.text();
var inter_data_type = $this.parent().attr('id');
if(!inter_data_type in answers) {
answers.push({"inter_data_type":value});
}
alert(answers); //displaying [object][object]
alert(answers.inter_data_type); // displaying undefined
});
在插入之前需要检查数组中是否存在键,如果键和值存在,则无需插入它,如果键相同且值不同,则需要替换特定键的值。 但上面的代码不起作用。即使它插入数组也无法获取值。
尝试alert(answers[0].inter_data_type)
答案是一个数组,所以你必须说出你对哪个元素感兴趣。您可以通过提供数字索引来做到这一点。
我建议使用更好的可视化
console.debug(answers);
请尝试以下操作
answers.push({"inter_data_type":"value"});
alert(answers[0].inter_data_type); // displaying undefined
我看了你的问题,意识到你要求的东西比我最初想象的要多。但是试试这个:
var answers=[];
var value = $this.text();
var inter_data_type = $this.parent().attr('id');
var isThere = false;
for(var i=0; i<answers.length; i++)
{
if(answers[i].inter_data_type==inter_data_type)
{isThere=true;break;}
}
if(isThere===true){
answers.push({inter_data_type:inter_data_type, value:value});
}
console.debug(answers);
console.debug(answers[0].inter_data_type,answers[0].value);
您使用键值对在数组中插入数据,它是 JSON。 因此,如果您想让它处于警报状态,则必须这样做并检查键或值是否存在。
希望对您有所帮助。享受编码..!!
var answers=[];
var value = $this.text();
var inter_data_type = $this.parent().attr('id');
for(var i = 0; i < answers.length; i++){
if(answers.hasOwnProperty(i)){
for(var prop in answers[i]){ // For get Key
if(answers[i].hasOwnProperty(prop)){
if(answers[i].hasOwnProperty(prop) == inter_data_type){ //For check key is same or not
if(answers[i][inter_data_type] != value){ // For check value is same or not
answers[i][inter_data_type] = value; // replace value if not same
}else{
}
}else{
answers.push({inter_data_type:value});
}
}
}
}
alert(JSON.stringify(answers));
}
你可以试试这种方式:
var answerMap = [];
if (answerMap["key_name"] == undefined) {
answerMap["key_name"] = value;
}
如果使用地图而不是数组,我们可以实现这一点。
var answers={};
answers[inter_data_type]=value;
根据对问题的编辑并期望问题需要动态键、动态值和"if"语句检查答案中inter_data_type的动态值。以下是工作脚本。
var answers=[];
$(".btn-like, .btn-dislike").click(function() {
var $this = $(this);
var value = $this.text();
var inter_data_type = $this.parent().attr('id');
if(!(inter_data_type in answers)) { // Please note the extra brackets used here
answers[inter_data_type] = value;
}
alert(answers); // It will display ["Some inter data": "Some Val"]
alert(answers[inter_data_type]); // It will display "Some val"
});
相关文章:
- 正在数组中存储键值对
- 如何将新的键/值对元素添加到现有数组
- 在键值对中对求和值进行下划线
- 返回由键/值对定义的数组
- 在url参数javascript中存储键值对列表
- 将数组转换为键值对
- jQueryAJAX-将额外的键/值对推送到序列化的$_POST数组中
- 使用jQuery从ajax调用访问键值对
- 将动态键值对传递给函数
- d3使用键值对对对多个值的数据进行分组
- JS在封装对象中查找键值对
- 从html标记格式的字符串中提取键值对
- JavaScript 在函数中声明键值对
- 在JavaScript中为表单元素生成键值对
- 如何给$('inputs')每个函数,以将数据存储为 asp.net 中的键值对
- 从 JSON 获取键值对而不使用 .(DOT) 在 Java 脚本或 jquery 中
- 在键值对的唯一组合上合并对象
- 动态插入并从数组中检索键值对 - Javascript
- 从JSON中检索键值
- javascript对象键值对