我已经从数组创建了这个JS对象。
var rv = {};
$( ".part-name:visible" ).each(function( index ) {
//rv[$(this).text()] = arrayPartsName[$(this).text()];
rv[$(this).text()] = arrayPartsName[$(this).text()];
console.log(rv);
})
4GN: "4GN"
4GNTS: "4GNTS"
042645-00: "042645-00"
503711-03: "503711-03"
573699-05: "573699-05"
我必须将此对象与Materialize Autocomplete一起使用,并且必须对其进行编辑。正确的对象必须像这样
4GN: null
4GNTS: null
042645-00: null
503711-03: null
573699-05: null
该怎么办?
答案 0 :(得分:1)
从我的评论中摘录。您可以将其设置为null
;)JavaScript是一种很酷的语言...您几乎可以将任何对象的属性设置为所需的任何内容,null
,特定值甚至函数。 .. see some more on the topic
但是要专注于您的特定问题:
更改此行
rv[$(this).text()] = arrayPartsName[$(this).text()];
到
rv[$(this).text()] = null;
如果JSON对象中有property
或键值,并且名称中带有短划线,则必须将其用引号"
括起来,否则将不会被视为有效。尽管这可能不那么明显,但在示例中还是有问题,因为通过以下功能$(this).text()
添加了密钥。
var fruit = {
"pear": null, // something null
"talk": function() { console.log('WOOHOO!'); } // function
}
var apple = "app-le";
fruit[apple.toString()] = 'with a dash';
fruit["bana-na"] = 'with a dash';
// below is not allowed, the values will be evaluated as
// properties that dont exist, and then your js will fail
// fruit[pe-ar] = 'with a dash';
fruit.talk();
console.log(fruit);