我仍在学习JavaScript,最近我在互联网上偶然发现了这段代码,解释了用数组替换JSON.stringify:
var ar = ['one', 'two', 'three'];
function replacer2(i, val) {
if ( i === '0' ) { // identity operator and index in quotes
return undefined; // attempt to remove from result
} else if ( i == 1 ) { // equality operator and numeric version of index
return 2;
} else {
return val; // return unchanged
}
}
var json = JSON.stringify(ar, replacer2);
console.log(json);
// [null,2,"three"]
来源:https://www.dyn-web.com/tutorials/php-js/json/filter.php 现在我没有得到的部分是替换器2的功能参数,即i和val。我得到我应该是索引和val是ar(如果我在这里错了,请更正我)。但是函数如何知道呢?如何区分ar的索引和值?
答案 0 :(得分:1)
不是index
和value
首先了解这个Array is also an object
。用键0,1,2 ....作为索引。
在函数中,两个参数分别是对象的key
和value
。如果您对以下对象执行JSON.stringify
{
foo: 'a',
bar: 'b'
}
在第一次迭代中,您将获得参数'foo', 'a'
,在第二次迭代中,您将获得参数'bar', 'b'
。
希望我很清楚。