javascript - 结合旧的和新的设置

标签 javascript object youtube youtube-api youtube-javascript-api

我知道这样设置的代码有效,
我只是不知道它是否是一种好用的,不会有问题,这意味着它不会有问题。

是的,它正在做我们想要做的事情。
它将 oldSettings newSettings 结合在一起。
我不知道它的书写方式是否比这里的书写方式更好。
可能可以进行改进。

代码:

https://jsfiddle.net/Lnj7quby/8/

function combineSettings(oldSettings, newSettings) {
    const playerVars = Object.assign({}, oldSettings.playerVars, newSettings.playerVars);
    const settings = Object.assign({}, oldSettings, newSettings);
    settings.playerVars = playerVars;
    return settings;
}

oldSettings

哪些是:defaultSettings
const defaultSettings = {
    playerVars: {
        autoplay: 1,
        controls: 1,
        showinfo: 1,
        rel: 0,
        iv_load_policy: 3,
        cc_load_policy: 0,
        fs: 0,
        disablekb: 1
    },

new设置
是添加到其中的任何设置。
loadPlayer({
    target: ".jacketc",
    width: 600,
    height: 338,
    start: 200,
    end: 205,
    loop: true
});
loadPlayer({
    target: ".playa",
    start: 8,
    end: 12,
    loop: true
});

最佳答案

使用spread syntax:

const defaultSettings = {
  playerVars: {
    autoplay: 1,
    controls: 1,
    showinfo: 1,
    rel: 0,
    iv_load_policy: 3,
    cc_load_policy: 0,
    fs: 0,
    disablekb: 1
  }
}

const newSettings = {
  target: ".jacketc",
  width: 600,
  height: 338,
  start: 200,
  end: 205,
  loop: true
}

const mergedSettings = {
  ...defaultSettings,
  playerVars: {
    ...defaultSettings.playerVars,
    ...newSettings
  }
};

console.log(mergedSettings);

关于javascript - 结合旧的和新的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53684857/

相关文章:

javascript - YouTube 暂停、播放和停止不起作用

Android:如何强制 WebView 播放来自 youtube 的视频?

vb.net - 从 VB.NET channel 获取 YouTube 视频

javascript - 函数调用 [javascript]

javascript - 使用 Nashorn 将 ScriptObjectMirror 转换为其他 Java 类

c++ - 派生类的一些问题

javascript - Angular - 来自变量的 ngModel 对象属性

javascript - 具有自定义 JSON 格式的 Ember RESTAdapter

javascript - Meteor MongoDB 集合无法访问 Meteor 发布

javascript $.ajax 返回对象 Object