我试图在javascript中深层复制嵌套对象的数组.我的阵列看起来像这样
var arr = [{name:"adam",age:"21"},
{name:"freddie",age:"35",children:[{name:"mercury",age:"25"}]},
{name:"jim",age:"35",children:[{name:"morrison",age:"25",children:[{name:"some", age:"40"}]}]}
];
Run Code Online (Sandbox Code Playgroud)
我想对数组中的每个对象进行深层复制,我希望将arr的精确副本创建为不应该有对象引用的新数组.数组的深度也是未知的,即子数组可以达到任何级别.我已经通过这个链接 将一个对象数组复制到另一个数组而没有javascript中的对象引用(深层复制),但这对我没有帮助.我用google搜索并在jQuery中找到了一些解决方案,但这对我没有帮助,因为我对jQuery没有任何了解.
我也尝试用递归实现它,但这也不起作用 http://ideone.com/kJi5X3
我想在不使用jQuery或任何东西的情况下在javascript中完成它.我是JavaScript的新手,所以如果有任何库或简单的方法,我可能会错过.请帮我解决这个问题.提前致谢.
我正在使用Visual Studio 2013.
最近我尝试了~运算符1的补码:
int a = 10;
cout << ~a << endl;
Run Code Online (Sandbox Code Playgroud)
输出是 -11
但对于
unsigned int a = 10;
cout << ~a << endl;
Run Code Online (Sandbox Code Playgroud)
输出是 4294967296
我不明白为什么输出是-11签名的情况int.请帮我解决这个困惑.
我有一个spring应用程序,它使用自定义的身份验证过滤器,例如filter1来授权请求,此过滤器使用身份验证管理器进行身份验证,并且适用于应用程序中的所有url。
现在,我想实现一个不同的身份验证过滤器,例如filter2,该过滤器必须使用url(/ api /)授权特殊的请求类型。这就是所有具有(/ api / **)之类的url的请求都必须使用filter2。
以下是到目前为止我为此目的尝试过的代码。
public class SecurityAppConfig {
@Configuration
@Order(1)
public static class APISecurityConfig extends WebSecurityConfigurerAdapter {
private CustomAuthenticationManager1 manager1 = new CustomAuthenticationManager1();
@Override
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
.formLogin().disable().csrf().disable().cors().disable().logout().disable();
if (manager1 != null) {
http.addFilterAfter(new Filter1(manager1),
AnonymousAuthenticationFilter.class);
}
}
}
@Configuration
@Order(2)
public static class OtherApiSecurityConfig extends WebSecurityConfigurerAdapter {
private AuthenticationManager2 manager2 = new AuthenticationManager2();
@Override
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
.formLogin().disable().csrf().disable().cors().disable().logout().disable();
if (manager2 != null) {
http.antMatchers("/api/**").addFilterAfter(new Filter2(manager2), …Run Code Online (Sandbox Code Playgroud)